Dodawanie wyjatkow do zapory windows

Odpowiedz Nowy wątek
based
2009-12-17 17:22
based
0

witam, mam problem chce dodac mój program do wyjątkow Zapory windows mam o to taki kod znaleziony w internecie.

var

reg: TRegistry;

sp2 : string;

begin

reg := TRegistry.Create;

reg.RootKey := HKEY_LOCAL_MACHINE; //rozpoczynamy otwieranie każdej gałęzi z osobna sp2:=Application.ExeName; //pobranie lokalizacji w której uruchomiono nasz program reg.OpenKey('System', True);

reg.OpenKey('ControlSet001', True);

reg.OpenKey('Services', True);

reg.OpenKey('SharedAccess', True);

reg.OpenKey('Parameters', True);

reg.OpenKey('FirewallPolicy', True);

reg.OpenKey('StandardProfile', True);

reg.OpenKey('AuthorizedApplications', True);

reg.OpenKey('List', True);

if aktywuj = True then

begin

reg.WriteString(sp2,sp2+':*:Enabled:'+ExtractFileName(sp2)); // zapisanie wyjątku wg. opisu z punktu 1.1, natomiast nazwą własną będzie nazwa naszego projektu

end

else if aktywuj = False then

begin

reg.DeleteValue(sp2); //usunięcie wyjątku

end;

reg.CloseKey;

end;

i nie wiem gdzie dodac sciezke i nazwe programu, domyslam sie ze w tej lini 

<delphi> 
reg.WriteString(sp2,sp2+':*:Enabled:'+ExtractFileName(sp2)); 

tylko nie wim czym zastąpic sp2,sp2 i ExtractFileName(sp2)

mogł by mi ktos to wytłumaczyc na chłopski rozum?

</delphi>

Pozostało 580 znaków

2009-12-17 17:51
Moderator

Rejestracja: 12 lat temu

Ostatnio: 4 tygodnie temu

Lokalizacja: Szczecin

0

W złym kluczu masz to dodawanie, bo z tego co widzę u siebie w XP to te wyjątki są w innym i nie wiem,
czy na pewno dodanie programu poprzez Rejestr wystarczy, ale możesz spróbować. A co do nazwy klucza
to ma nim być ścieżka i nazwa pliku wykonywalnego. A poniżej przykład dla dodanego Total Commandera.

REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List]
"C:\\Program Files\\TOTALCMD\\TOTALCMD.EXE"="C:\\Program Files\\TOTALCMD\\TOTALCMD.EXE:*:Enabled:Total Commander 32 bit international version, file manager replacement for Windows"

Pozostało 580 znaków

based
2009-12-17 18:39
based
0

program sie uruchamia ale nie dodaje wyjatku popełniłem gdzies błąd?

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Registry;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
  var

reg: TRegistry;

sp2 : string;

begin

reg := TRegistry.Create;

reg.RootKey := HKEY_LOCAL_MACHINE; //rozpoczynamy otwieranie każdej gałęzi z osobna sp2:=Application.ExeName; //pobranie lokalizacji w której uruchomiono nasz program reg.OpenKey('System', True);

reg.OpenKey('ControlSet001', True);

reg.OpenKey('Services', True);

reg.OpenKey('SharedAccess', True);

reg.OpenKey('Parameters', True);

reg.OpenKey('FirewallPolicy', True);

reg.OpenKey('StandardProfile', True);

reg.OpenKey('AuthorizedApplications', True);

reg.OpenKey('List', True);

begin

reg.WriteString "C:\\win.EXE"="C:\\win.EXE:*:Enabled: win.exe";

end
reg.CloseKey;

end;

Pozostało 580 znaków

2009-12-17 19:37

Rejestracja: 17 lat temu

Ostatnio: 4 lata temu

0

po 1. jak wklejasz kod, to nie wklejaj calego unitu tylko sama procedure - mniejszy balagan bedzie.
po 2. otwierasz:
HKEY_LOCAL_MACHINE\ControlSet001\...
a gdzie "SYSTEM" ??
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\...
po 3. nie muszisz 10 razy wywolywac reg.OpenKey z kolejnymi kluczami. mozna raz a porzadnie:

reg.OpenKey('SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List', True);

po 4. olesio podal Ci jak to ma wygladac:

olesio napisał(a)
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List]
"C:\\Program Files\\TOTALCMD\\TOTALCMD.EXE"="C:\\Program Files\\TOTALCMD\\TOTALCMD.EXE:*:Enabled:Total Commander 32 bit international version, file manager replacement for Windows"

ale widac, ze to jest wyeksportowany jeden wpis do pliku .reg, a tam sciezki sa inaczej zapisywane.
gdybys choc troche sie postaral to bys sprawdzil jak to wyglada w rejestrze w podanym kluczu.
wpisujesz do rejestru sciezki z podwojnymi slachami (C:\win.exe). czemu? tak sa tylko zapisywane w pliku
.reg.
w rejestrze sa "normalne sciezki" ("C:\win.exe").

Pozostało 580 znaków

2009-12-17 21:48

Rejestracja: 17 lat temu

Ostatnio: 4 lata temu

0

cos chyba zle wkleiles ;]
a co do "SYSTEM", faktycznie "sie dodał" do komentarza, nie zuwazylem.
pytanie czy jest tak tylko na forum czy w programie tez...?

Pozostało 580 znaków

2009-12-17 21:54

Rejestracja: 10 lat temu

Ostatnio: 2 lata temu

0
cimak napisał(a)

cos chyba zle wkleiles ;]
a co do "SYSTEM", faktycznie "sie dodał" do komentarza, nie zuwazylem.
pytanie czy jest tak tylko na forum czy w programie tez...?

Podejrzewam, że w programie też, bo kolega kopiował całego Unita, więc wątpię, żeby cokolwiek zmieniał? :-)
No, ale myślę, że po tych informacjach jakie dostał to już chyba wszystko mu działa jak należy?

Pozostało 580 znaków

based
2009-12-17 22:11
based
0

no własnie cos nie działa wywala blad 'Not enough actual parameters' tzn Zamało parametrów w funkcji.

według waszej pomocy ta linia powina wyglądac tak.. chyba ze cos pomieszałem?

reg.WriteString ('C:\win.EXE')'='('C:\win.EXE:*:Enabled: win.exe');

Pozostało 580 znaków

based
2009-12-17 22:12
based
0

Za mało *

Pozostało 580 znaków

2009-12-17 22:12

Rejestracja: 17 lat temu

Ostatnio: 4 lata temu

0

:|

based napisał(a)
reg.WriteString ('C:\win.EXE')'='('C:\win.EXE:*:Enabled: win.exe');

co to ma byc niby?
skad Ty to wytrzasnales!?

Pozostało 580 znaków

based
2009-12-17 22:13
based
0

cos nie tak?

Pozostało 580 znaków

2009-12-17 22:16

Rejestracja: 17 lat temu

Ostatnio: 4 lata temu

0
based napisał(a)

cos nie tak?

noo... naucz sie podstaw.
zobacz sobie jak ta linijka wyglada w Twoim pierwszym poscie...

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0