1
#include <windows.h>2
#include <stdio.h>3

4
BOOL TerminateProcessFromId(DWORD dwId)5


{6
BOOL bRet=FALSE;7

8
DWORD dwExitCode = 0;9

10
//获得进程句柄11
HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwId);12

13
if (hProcess != NULL)14

{15
//获得退出代码16
::GetExitCodeProcess(hProcess,&dwExitCode);17
18
if (dwExitCode == STILL_ACTIVE)19

{20
//结束进程21
bRet = ::TerminateProcess(hProcess,dwExitCode);22
}23
}24

25
//关闭进程句柄26
CloseHandle(hProcess);27

28
return bRet;29
}30

31
int main(int argc, char* argv[])32


{33
DWORD dwProcessId = 3948;34
35
TerminateProcessFromId(dwProcessId);36

37
return 0;38
}
ps:TerminateProcess()有个缺点,它只能关闭主线程,如果该程序调用了DLL,那么子线程不会被关闭。
所有评论(0)