如何检测用户是否按下Ctrl-Alt-Del或Alt-Tab以便我可以最小化我的程序?

时间:2014-04-25 21:51:28

标签: c++ winapi directx-11 winmain alt-tab

我正在使用DirectX 11在C ++中编写程序,我希望能够在用户按下Ctrl-Alt-Del或Alt-Tab时最小化程序。

让窗口本身最小化是很容易的部分,因为我所要做的就是调用这个函数:

ShowWindow(hWnd, SW_MINIMIZE);

我坚持的部分是让它检测何时输入这两个特定击键中的任何一个,这样我可以在其中一个事件发生时调用该函数。

任何帮助都将不胜感激,如果您需要我澄清一些事情,请告诉我。

1 个答案:

答案 0 :(得分:3)

更熟悉Windows内核的人可以在这里用厚重的靴子踩踏并纠正我,但据我所知,Ctrl-Alt-Delete就是这样的系统,它是“巨型系统”。原因是,如果程序可以锁定它,那么当一些白痴决定弹出一个“你确定吗?”是一个好主意时,你最终会得到一个死桌面。消息框,当用户意识到他的电脑已经下地狱。

作为软件开发人员,我们应遵循一些指导原则,并试图改变操作系统的行为(无论我们的意图如何),总是会流泪。

我建议你不要尝试这样做(如果确实有可能,我从未尝试过 - 坦率地说),并开始考虑你可以做的更重要的事情。如果在运行DirectX应用程序时内存服务且用户 按Ctrl-Alt-Delete,则会丢失表面/设备上下文(假设您是全屏)。

优雅地退出,或者如果你可以恢复 - 这样做。