防止其他窗口“覆盖”windowsAPI的热键

我试图通过制作一个程序来学习windows API的基础知识,当PRINTSCREENbutton被按下时,将保存一个.jpeg文件,并立即将其上传到imgur。 目前,当我玩大多数游戏或只是浏览桌面,这个程序工作正常。

但是,有些游戏似乎阻止了我使用这个热键的能力。 (黑暗之魂2专门做这个。)我目前正在使用

RegisterHotKey(NULL, 1, 0, VK_SNAPSHOT) 

将button分配给我的程序。 但是,当某些游戏正在运行时,按下该键时上面的RegisterHotKey和下面的GetAsyncKeyState都不起作用。

 GetAsyncKeyState(VK_SNAPSHOT) 

(我不希望使用GetAsyncKeyState,因为它会一直在debuggingwindows API,使程序不必要的慢,这只是为了testing。)

有谁知道一种方法来阻止这种情况的发生?

(并在一个不相关的说明:如果这是一个简单的任务,我将如何跨越多个显示器(S)截图?我目前只在我的主监视器上工作…)

如果应用程序使用原始输入进行键盘映射,则键盘处理代码绕过热键检查器。 我个人不知道Dark Souls是否会这样做,但是我熟悉键盘处理的Windows内核代码。