【发布时间】:2014-05-23 01:31:58
【问题描述】:
我正在尝试通过编写一个程序来学习 Windows API 的基础知识,当按下 PRINTSCREEN 按钮时,该程序将保存 .jpeg 并立即将其上传到 imgur。目前,当我在玩大多数游戏或只是浏览桌面时,这个程序运行良好。
但是,有些游戏似乎阻止了我使用此热键的能力。 (黑暗之魂 2 专门这样做。)我目前使用
RegisterHotKey(NULL, 1, 0, VK_SNAPSHOT)
将按钮分配给我的程序。但是,在某些游戏运行时,按键按下时,上面的RegisterHotKey和下面的GetAsyncKeyState都不起作用。
GetAsyncKeyState(VK_SNAPSHOT)
(我不想使用 GetAsyncKeyState ,因为它会不断干扰 windows API 并使程序不必要地变慢,这只是为了测试。)
有人知道阻止这种情况发生的方法吗?
(并且,在不相关的说明中:如果这是一项简单的任务,我将如何截取跨多个显示器的屏幕截图?我目前仅在我的主显示器上工作......)
【问题讨论】:
-
我在 Windows 7 上。但如果您也知道如何在其他版本的 Windows 上解决此问题,我们将不胜感激!我正在尝试一次尽可能多地学习。
-
我认为您可以使用
Ctrl-PrtScn获得跨多个显示器的屏幕截图。 -
作为一种远程可能性,您可以尝试将
GlobalAddAtom用于id用于RegisterHotKey。请参阅此处备注部分的最后一段:msdn.microsoft.com/en-us/library/windows/desktop/… -
ooga,我知道你可以得到一个这样的,但是你如何从 windows API 进行相应的调用呢?这是最难的部分 :) 我现在试试
GlobalAddAtom! -
GlobalAddAtom不能作为id传递给RegisterHotKey函数