[delphi] aktywne procesy

0

witam

Firewall zaczął mi sie wysypywać - średnio co godzinę :P
próbuję napisać program, który sprawdzi czy na lisboxie1 są uruchomione procesy wpisane w lisbox2.

dlatego potrzebuje funkcji, która pobrałaby ścieżkę aktywnego programu
mam na myśli coś takiego

patch:= GetPathFromProces(ID_procesu : integer); albo
patch:= GetPathFromProces(nazwa_procesu : string);

oczekuję
patch = 'c:\agnitum\outpost\outpost.exe'

szkielet programu jest na podstawie artykułu autorstwa DeeL'a - Wyłączanie procesów

z góry dzięki

0

użyj wyszukiwarki, bo temat był już poruszany:
http://4programmers.net/Forum/307605
http://4programmers.net/Forum/248425?h=#id248425

btw. path, nie patch, ponadto po co Ci pełna ścieżka? znacznie prościej jest sprawdzić samą nazwę pliku, bez katalogu, i jeśli takiej nazwy nie ma na liście procesów, to uruchomić przypisany do niej (w ustawieniach Twojej aplikacji) program. w ten sposób to, co napiszesz, będzie bardziej uniwersalne (nie zawsze plik w procesach jest tym samym, który został początkowo uruchomiony).

0
ŁF napisał(a)

użyj wyszukiwarki, bo temat był już poruszany:
http://4programmers.net/Forum/307605
http://4programmers.net/Forum/248425?h=#id248425

btw. path, nie patch, ponadto po co Ci pełna ścieżka? znacznie prościej jest sprawdzić samą nazwę pliku, bez katalogu, i jeśli takiej nazwy nie ma na liście procesów, to uruchomić przypisany do niej (w ustawieniach Twojej aplikacji) program. w ten sposób to, co napiszesz, będzie bardziej uniwersalne (nie zawsze plik w procesach jest tym samym, który został początkowo uruchomiony).

thx za linki,

pelna sciezkie chcialem wykorzystac w funkcji EXEC.

0

w delphi jest exec? raczej shellexecute/createprocess. co do pełnej ścieżki, to napisałem w poprzednim poście - wyciągasz z konfiguracji programu. ale to Twoja aplikacja, rób jak chcesz.

0

tłumacze dlaczego na stałe nie wpisałem ścieżki o programu bądź pliku.

//chciałem stworzyć rekord z nazwą programów i ścieżką do nich

type plik = record
       name : string;
       path : string;
end;

//następnie deklaruje 2 tablice, którymi wypełnie listboxy
var tab_L1, tab_L2 : array of plik;

do pierwszej z tablic wpisywałbym aktywne procesy...do 2 bym kopiował interesujące mnie pliki

function przenies( nr : integer): plik;
begin
il_p := il_p + 1; //ilosc programow przeznacoznych do "ochrony"

przenies := tab_L1[il_p];
end;

buttonclick;
begin

listbox2.items.add(listbox1.itemindex);

tab_L2 := przenies(listbox1.itemindex);

end;</delphi>

Teraz w timerze z pomocą pętli porównywałbym tab_L2 z tab_L1...jeżeli proces zdefiniowany w tab_L2 nie jest umieszczony w tab_L1 to wywołuje

EXEC( tab_L2[jakis_numer] );

no..ale jeszcze pokombinuje xP

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