delphi如何关闭未响应程序?

来源:百度知道 编辑:UC知道 时间:2024/05/24 01:15:25
我的程序在停止响应的时候,用任务管理器结束进程无法结束,但是用任务管理器的结束任务可以关闭,也可以直接在任务栏右键点关闭关掉。程序停止响应的时候就相当于用od把程序挂起但是不运行时候的效果,不知道该怎么用delphi在外部关闭这个程序?请高手指点?
Run——Program Reset 这个我没接触过
能像细说下吗

function KillTask(ExeFileName:string):integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOLean;
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;

直接在任务兰里强行关掉.<