【发布时间】:2017-10-02 03:04:00
【问题描述】:
如何终止从给定进程名称开始的进程?
例如:如何杀死program.exe?
我尝试了以下代码,它返回从 PID 开始的进程名称,但它不适合我的需要(在我的情况下,我有进程名称并想终止它)
function GetPathFromPID(const PID: cardinal): string;
var
hProcess: THandle;
path: array[0..MAX_PATH - 1] of char;
begin
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, PID);
if hProcess <> 0 then
try
if GetModuleFileNameEx(hProcess, 0, path, MAX_PATH) = 0 then
RaiseLastOSError;
result := path;
finally
CloseHandle(hProcess)
end
else
RaiseLastOSError;
end;
【问题讨论】:
-
请详细说明“不起作用”是什么意思?这绝不是一个有效的问题描述。它会给你一个错误吗?你会得到意想不到的结果吗?什么都没有发生吗?你调试了吗?还是您想从文件名中获取进程 ID?如果同一个可执行文件有多个进程怎么办?
标签: delphi kill-process