【问题标题】:Global Hotkey does not work in Fullscreen game全局热键在全屏游戏中不起作用
【发布时间】:2014-01-20 00:50:36
【问题描述】:

我正在创建一个程序,用于从游戏中截取游戏截图。当我按下热键时它可以工作,但是在全屏打开游戏时它不会检测到键。

我的代码:

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;
        }
    }
}

我使用以下方法注册全局密钥:

RegisterHotKey(this.Handle, 1, (int)KeyModifier.None, Keys.F11);

帮帮我:/

已解决! 解决了,我设法通过这个项目修复: http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook

谢谢大家!

【问题讨论】:

    标签: c# screenshot global-hotkey


    【解决方案1】:

    大多数游戏(不是全部)的问题在于它们使用 DirectInput (DirectX) 而不是 Windows 消息泵来读取击键。我还编写了一个使用语音识别的应用程序,该应用程序将密钥发送到游戏并遇到了我通过查看 DirectX 键码解决的相同问题。 ref: DirectInput

    【讨论】:

    【解决方案2】:

    我遇到了类似的问题,但我通过以管理员权限运行我的程序解决了它。

    【讨论】:

    • 太棒了,但仍然真实 :) 谢谢
    • 这实际上解决了我的问题!谢谢...我制作了一个全局挂钩键应用程序,但在我的游戏运行时没有工作,直到我看到你的答案并意识到我的游戏以管理员身份运行而应用程序不是。感谢这样的救生员
    猜你喜欢
    • 1970-01-01
    • 2010-11-19
    • 2011-05-16
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2011-05-28
    • 2023-03-03
    • 2021-05-17
    相关资源
    最近更新 更多