讨论杀进程的问题? 杀进程除了用TerminateProcess外还可以用什么方法,欢迎大家提供别的方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有些肯定不好:ExitProcess向进程发送WM_Close消息 昨天看电脑高手合订本有个杀非本地进程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; 什么样的软件壳比较好 调试dpk包,有些单元可以设置跟踪断点有些不行,原因是什么? 马上结~~~ 怪事:注入explorer.exe一切功能正常,但是注入winlogon.exe很多功能丧失 系统菜单响应 ??? ——高手赐教吧 我遇到头疼的问题,整了一天都不行!希望大家能帮帮忙!出出主意!!万分感谢!! 谁有delphi的反编译软件?我需要,谢谢。 现在已经没有用delphi做B/S的项目了吗? access查询问题,请进! CookCode 组件仓库开放了 ADO联SQL Server的问题 [Bug]管理员来看看,给分问题,有意思!
ExitProcess
向进程发送WM_Close消息
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;