Witam.
Czy jest jakiś prosty sposób na to, aby zakończyć dany proces? Próbowałem tak:
WinExec('TASKKILL explorer.exe'); ale jakoś nie działało, a poza tym nie o takie zamykanie mi chodzi. Na innym forum znalazłem takie rozwiązanie, lecz coś nie mogę go wykonać:
jak znasz klase:
function KillProc(const ClassName:AnsiString):Boolean;
var
hWnd,hProc:THandle;
pid:DWORD;
begin
Result:=False;
hWnd := FindWindow(PCHAR(ClassName),nil);
if IsWindow(hWnd) then begin
GetWindowThreadProcessId(hWnd, @pid);
hproc := OpenProcess(PROCESS_TERMINATE, FALSE, pid);
if hproc<>0 then begin
Result:=TerminateProcess(hProc,0);
if Result then CloseHandle(hProc);
end;
end;
end;
KillProc('NOTEPAD');
ścieżkę
uses TLHelp32;
var
PHandle, FHandle: THandle;
Process:TProcessEntry32;
Done, Next: Boolean;
EXE : String; // ścieżka programu
begin
EXE := 'C:\Windows\Pulpit\prog.exe';
FHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
Process.dwSize := Sizeof(Process);
Next := Process32First(FHandle,Process);
while Next do
begin{ jesli sciezka dostepu sie zgadza }
if AnsiLowerCase(Process.szExeFile) = AnsiLowerCase(EXE) then
begin
PHandle:=OpenProcess(PROCESS_TERMINATE, False,
Process.th32ProcessID);
{ to probujemy zabic aplikacje }
Done := TerminateProcess(PHandle,0);
if not Done then
MessageBox(Handle, 'Błąd', 'Błąd', MB_OK);
end;
Next := Process32Next(FHandle,Process);
end;
CloseHandle(FHandle);
end;
caption
``` var H:Thandle; begin H:=FindWindow(nil,'Caption Okna do zamknięcia'); PostMessage(H,WM_QUIT,0,0); end; ```I chodzi o to, że nie chodzi, i poza tym ta metoda jast jakoś bardzo skomplikowana.
Proszę i z góry dziękuję za odpowiedź, pozdrawiam, gonet9