讨论杀进程的问题?

jackzhao 2003-01-09 02:47:15
杀进程除了用TerminateProcess外还可以用什么方法,欢迎大家提供别的方法。
...全文
41 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzgyb 2003-01-09
  • 打赏
  • 举报
回复
昨天看电脑高手合订本有个杀非本地进程
c的
改为delphi的

function SafeClose(hProcess: THandle; uExitCode: UINT): BOOL;
var
dwTID, dwCode, dwErr: DWORD;
hProcessDup, hRT: THandle;
hKernel, hP: THandle;
bDup, bSuccess: BOOL;
pfnExitProc: FARPROC;
begin
dwErr := 0;
hProcessDup := INVALID_HANDLE_VALUE;
hRT := 0;
bSuccess := False;

hKernel := GetModuleHandle('Kernel32');
bDup := DuplicateHandle(GetCurrentProcess, hProcess, GetCurrentProcess,
@hProcessDup, PROCESS_ALL_ACCESS, False, 0);

if bDup then
hP := hProcessDup
else
hP := hProcess;
if GetExitCodeProcess(hP, dwCode) and (dwCode = STILL_ACTIVE) then
begin
pfnExitProc := GetProcAddress(hKernel, 'ExitProcess');
hRT := CreateRemoteThread(hP, nil, 0, pfnExitProc, @uExitCode, 0,
dwTID);
if hRt = 0 then
dwErr := GetLastError;
end
else
dwErr := ERROR_PROCESS_ABORTED;

if hRT <> 0 then
begin
WaitForSingleObject(hP, INFINITE);
CloseHandle(hRT);
bSuccess := TRUE;
end;

if bDup then
CloseHandle(hProcessDup);

if not bSuccess then
SetLastError(dwErr);
Result := bSuccess;
end;
xirumin 2003-01-09
  • 打赏
  • 举报
回复
有些肯定不好:
ExitProcess
向进程发送WM_Close消息

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧