关闭进程自然会想到ExitProcess()
不过好像纯粹的调用ExitProcess不嫩结束打开的应用程序,只能结束本程序(运行产生的EXE程序),查看了一些还有TriminateProcess也能终止进程,效果相当于管理器中直接掐掉进程
ExitProcess()只能强制执行本进程的退出,如果要在一个进程中强制结束其他的进程就要用TerminateProcess()来实现。与ExitProcess()不同,TerminateProcess()函数执行后,被终止的进程是不会得到任何关于程序退出的通知的。也就是说,被终止的进程是无法在结束运行前进行退出前的收尾工作的。所以,通常只有在其他任何方法都无法迫使进程退出时才会考虑使用TerminateProcess()去强制结束进程
DWORD dwTemp;
HANDLE handle;
handle = OpenProcess(0, FALSE, pi.dwProcessId);
if (!GetExitCodeProcess(pi.hProcess, &dwTemp))
{
DWORD dwRet = GetLastError();
}
HANDLE handle_1 = GetCurrentProcess();
//TerminateProcess(handle_1, NULL);
//TerminateProcess(pi.hProcess, NULL); 结束进程 可以杀死进程
if (dwTemp == STILL_ACTIVE)
ExitProcess(dwTemp); //终止进程 只能结束当前进程,不能结束TTpalyer进程
本文探讨了在Windows环境下如何通过ExitProcess()和TerminateProcess()函数来结束进程。详细对比了两者之间的区别,ExitProcess()用于正常结束当前进程,而TerminateProcess()则用于强制结束其他进程,并指出后者不会给予被终止进程任何清理资源的机会。

被折叠的 条评论
为什么被折叠?



