C#设置winform键预览最高优先级

C#设置winform键预览最高优先级,c#,winforms,C#,Winforms,在这里,我试图做一个程序,当我按下键盘“F6”,它会自动。将光标移动到某个位置并单击。我在桌面上测试了我的程序,它运行正常。但当我进入游戏并按F6时,它似乎不起作用。有些人工作,有些人不工作。我在想我能做些什么 private async void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); if (IsKeyPushedDown(Keys.F6)) {

在这里,我试图做一个程序,当我按下键盘“F6”,它会自动。将光标移动到某个位置并单击。我在桌面上测试了我的程序,它运行正常。但当我进入游戏并按F6时,它似乎不起作用。有些人工作,有些人不工作。我在想我能做些什么

 private async void timer1_Tick(object sender, EventArgs e)
    {

        timer1.Stop();
        if (IsKeyPushedDown(Keys.F6))
        {
            if (auth == 0)
            {
                MessageBox.Show("请先登录");
                timer1.Start();
                return;
            }

            SendKeys.Send("{ESC}");
            //Original
            if (rdbtnoriginal.Checked == true)
            {
                await Task.Delay(5000);
                hack();
            }
        }
        timer1.Start();
    }

在这里,我使用一个计时器滴答声,我从网上获得了代码,所以当我不关注表单并按F6时,它将触发事件。但是有些人进入游戏并按F6键,它不起作用

Winforms依赖于窗口被聚焦,以便在应用程序中注册关键消息(如果窗口未聚焦,IsKeyPushedDown将不会注册任何键,因为窗口未在后台接收到按键信息。您可能希望使用DXInput或OpenGL的输入功能,或者查看一下。可能还有其他库/代码。Google是您的朋友,按键记录可能是您最好的search术语。

我使用了一种称为“异步”的东西这意味着你可以在窗体未聚焦时触发它,我在我的两台笔记本电脑上测试了它,它们在未聚焦时工作得很好,但在其他人的电脑上却不工作。非常感谢,我将查看你发布的链接。RegardsSome游戏可以影响windows对键盘/鼠标输入的响应。一些技术c一个对设备的独占控制(这就是为什么一些SST软件/按钮脚本工具不适用于所有游戏。希望你能解决你的问题。我尝试过使用低级键盘挂钩。当窗体没有焦点时,它可以工作。但当我在游戏中时,它仍然不能工作。低级键盘挂钩有任何优先级吗?我尝试过制作两个使用低级键盘挂钩的程序。显然,打开的第二个程序将覆盖窗体上的低级键盘挂钩第一个打开。确保您始终看到击键的唯一方法是通过WH_keyboard_LL实现一个低级键盘挂钩。搜索它……您将找到大量的示例。