我正在创建一个程序,用于从游戏中获取游戏的屏幕截图。当我按下热键时,它可以工作,但是在全屏打开游戏的情况下,它无法检测到该键。
我的代码:
protected override void WndProc(ref Message m)
{
const int WM_HOTKEY = 0x0312;
switch (m.Msg)
{
case WM_HOTKEY:
{
if ((short)m.WParam == 1)
{
start = DateTime.Now;
progressBar1.Maximum = 1;
progressBar1.Step = 1;
progressBar1.Value = 0;
DoRequest();
}
break;
}
default:
{
base.WndProc(ref m);
break;
}
}
}
我使用以下命令注册全局 key :
RegisterHotKey(this.Handle, 1, (int)KeyModifier.None, Keys.F11);
帮我 :/
已解决!
解决,我设法解决了这个项目:
http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook
谢谢你们!
最佳答案
大多数游戏(不是全部)的问题是它们使用DirectInput(DirectX)而不是Windows消息泵来读取按键。我还编写了一个使用语音识别的应用程序,该应用程序将键发送给游戏,并且遇到了我通过查看DirectX键码解决的相同问题。 ref: DirectInput
关于c# - 全局热键在全屏游戏中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21224633/