/******************************************************************************
本程序目的:开启后自动关闭当前系统中所有未响应的进程.
由于很多时候玩游戏的时候比如csgo我们会将游戏全屏化,
这样子一旦csgo未响应了之后就没有办法切换至其他窗口,任务管理器也一样,
但是还是能看到任务栏而且也能点击.
由此,开发此程序,添加快捷方式到任务栏,解决未响应必须注销的问题
编译环境: MSVC VS2017
*******************************************************************************/
#include <Windows.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
// 关闭窗口杀掉程序,网上复制粘粘的
BOOL FindProcessHandleAndKill(HWND hWnd);
//EnumWindows必须要求一个回调函数方便遍历
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) {
if (IsHungAppWindow(hwnd)) { //判断是否未响应
MyWINAPI::FindProcessHandleAndKill(hwnd);
return false;
}
return true;
}
int main() {
if (!EnumWindows(EnumWindowsProc, 0)) {
//WriteLog
return 0;
}
return 0;
}
BOOL FindProcessHandleAndKill(HWND hWnd)
{
DWORD ProcessID;
HANDLE hProcess;
if (hWnd == NULL)
{
return FALSE;
}
else
{
if (GetWindowThreadProcessId(hWnd, &ProcessID) == 0)//ハァーワ
{
return FALSE;
}
else
{
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);
if (hProcess == NULL)
{
return FALSE;
}
else
{
if (TerminateProcess(hProcess, 0))
{
return TRUE;
}
else
{
return FALSE;
}
}
}
}
}
把这个放到任务栏就行,需要的时候按win键点一下程序