3
I need to make an application in Delphi that finalizes processes through the image name, if this is possible tell me how.
3
I need to make an application in Delphi that finalizes processes through the image name, if this is possible tell me how.
4
Use this function:
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;
To use:
KillTask('calc.exe');
Declare: Tlhelp32
-1
Hello!
I needed to finish a process for your PID. For example, if I had two MS Excel spreadsheets open, I would like to finish just one of them, specific by PID.
In the task manager:
MSEXCEL 8345
MSEXCEL 9601 <- this is related to my application
To end, for example, only the PID 9601 process, I used something like:
var planilha: OleVariant; ProcIdXL: cardinal; xlHWND: HWND; sucesso: boolean;
begin
planilha := CreateoleObject('Excel.Application');
try
// armazena informação do processo
xlHWND := planilha.hwnd;
GetWindowThreadProcessId(xlHWND, ProcIdXL); // vai pegar o 9601
...
// executa o meu código
sucesso := true;
...
finally
...
if (not sucesso) AND (not VarIsEmpty(planilha)) then begin
planilha := Unassigned;
if (ProcIdXL > 0) then
TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0), ProcIdXL), 0);
end;
...
end;
end;
Just adapt to your need...
Browser other questions tagged delphi process
You are not signed in. Login or sign up in order to post.
Must be missing some statement, because Delphi is finding errors.
– Pascal Starting
Declare: Tlhelp32. Thank you.
– Eduardo Binotto