Завершаем работу процесса.
Написав довольно много уроков по администрированию я не уделил должного внимания работе с процессами. Так что, встречайте урок по завершению произвольного процесса.
Сначала давайте подключим библиотеку Tlhelp32.
Затем нам понадобится вот такая функция:
Так как в параметре к функции идет указатель на окно, поэтому используем FindWindow.
Впрочем, смотрим пример:
На этом всё, заходите ко мне каждый день и конечно
Удачи!
________________________
Расслабиться пора!
Короткое видео о том, что лучше не делать, но очень сложно избежать:D
Сначала давайте подключим библиотеку Tlhelp32.
Затем нам понадобится вот такая функция:
procedure KillProcess(hWindowHandle: HWND);
var
hprocessID: INTEGER;
processHandle: THandle;
DWResult: DWORD;
begin
SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);
if isWindow(hWindowHandle) then
begin
{ Get the process identifier for the window}
GetWindowThreadProcessID(hWindowHandle, @hprocessID);
if hprocessID <> 0 then
begin
{ Get the process handle }
processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
False, hprocessID);
if processHandle <> 0 then
begin
{ Terminate the process }
TerminateProcess(processHandle, 0);
CloseHandle(ProcessHandle);
end;
end;
end;
end;
Так как в параметре к функции идет указатель на окно, поэтому используем FindWindow.
Впрочем, смотрим пример:
procedure TForm1.Button2Click(Sender: TObject);
begin
KillProcess(FindWindow('Project1',nil));
end;
На этом всё, заходите ко мне каждый день и конечно
Удачи!
________________________
Расслабиться пора!
Короткое видео о том, что лучше не делать, но очень сложно избежать:D
Комментарии
Отправить комментарий