Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function IsRunning(sName: string): boolean; // проверяет, запущен ли процесс sName
- var
- han: THandle;
- ProcStruct: PROCESSENTRY32;
- sID: string;
- begin
- Result := false;
- han := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
- if han = 0 then
- exit;
- ProcStruct.dwSize := sizeof(PROCESSENTRY32);
- if Process32First(han, ProcStruct) then
- begin
- repeat
- sID := ExtractFileName(ProcStruct.szExeFile);
- if uppercase(copy(sId, 1, length(sName))) = uppercase(sName) then
- begin
- Result := true;
- Break;
- end;
- until not Process32Next(han, ProcStruct);
- end;
- CloseHandle(han);
- end;
- function KillTask(ExeFileName: string): integer;//прибить процесс
- const
- PROCESS_TERMINATE = $0001;
- var
- ContinueLoop: BOOL;
- FSnapshotHandle: THandle;
- FProcessEntry32: TProcessEntry32;
- begin
- result := 0;
- FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
- FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
- ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
- while integer(ContinueLoop) <> 0 do
- begin
- if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then
- Result := Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0));
- ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
- end;
- CloseHandle(FSnapshotHandle);
- end;
- // применение
- // while IsRunning('OkayFreedomService.exe') do begin
- // Sleep(10);
- // KillTask('OkayFreedomClient.exe') end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement