Windows系统无需重启电脑终止失控程序的键盘快捷键方法
Windows下鼠标被程序控制失控的非重启解决方案
运行这类通过SendInput模拟鼠标输入的失控程序时,完全不需要重启电脑,依靠纯键盘操作即可终止进程。
问题中给出的示例代码逻辑为无限循环模拟随机鼠标移动、左键点击,属于普通用户层程序,无法拦截Windows内核级的系统快捷键:
#include <windows.h> int WINAPI WinMain( HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, PSTR /*pCmdLine*/, int /*nCmdShow*/) { INPUT inputs[3] = {}; inputs[0].type = INPUT_MOUSE; inputs[0].mi.dwFlags = MOUSEEVENTF_MOVE; inputs[1].type = INPUT_MOUSE; inputs[1].mi.dwFlags = MOUSEEVENTF_LEFTDOWN; inputs[2].type = INPUT_MOUSE; inputs[2].mi.dwFlags = MOUSEEVENTF_LEFTUP; while (1) { inputs[0].mi.dx = (rand() % 1000) - 500; inputs[0].mi.dy = (rand() % 1000) - 500; SendInput(3, inputs, sizeof(INPUT)); } return 0; }
以下是按可靠性从高到低排序的操作方法,全程不需要使用鼠标:
- 最高可靠性方案:内核级安全快捷键操作
这个方案不受任何用户层程序干扰,100%生效:- 按下组合键
Ctrl + Alt + Del,该快捷键由Windows内核直接响应,触发后会暂停所有用户层程序的运行(包括正在乱模拟输入的失控程序),进入全屏系统安全界面。 - 进入安全界面后,按方向键↓选中「任务管理器」选项,按回车键打开。
- 任务管理器打开后,按
Tab键将焦点切换到进程列表区域,用上下方向键定位到失控程序对应的进程(自行编译的C++程序进程名与生成的exe文件名一致)。 - 选中目标进程后,按键盘
Delete键,在弹出的确认弹窗中,用方向键选中「结束进程」按钮,按回车确认即可,程序会被立刻终止,鼠标随即恢复正常。
- 按下组合键
- 快速呼出任务管理器方案
可直接按下Ctrl + Shift + Esc组合键直接呼出任务管理器,后续选中进程、终止进程的操作与上述步骤一致。注意该快捷键属于用户层可感知的快捷键,部分持续抢占输入焦点的失控程序可能干扰其触发,如果按下后无反应,直接切换为上述Ctrl + Alt + Del方案即可。 - 带窗口程序快速关闭方案
如果失控程序存在可见的前台窗口,可直接按下Alt + F4向当前前台窗口发送关闭消息,直接退出程序。该方案对问题中给出的无窗口示例代码无效。
注意:系统所有原生界面的交互都支持纯键盘操作,Tab键可在不同交互控件间切换焦点,方向键可选择选项,回车键可确认操作,哪怕鼠标持续乱跳也完全不影响操作流程。
内容的提问来源于stack exchange,提问作者SetupWizard
相关产品推荐
相关产品推荐

