在应用程序未打开时按下按键?

Get keys pressed while application not open?

在 Visual Studio 中,如何在 C# 未打开应用程序时获取按下的键?

我制作了一个游戏训练器,并且已经可以使用了。问题是如果我想使用作弊,我必须不断地打开训练器。所以每次我打开游戏时,我都会最小化训练器。但是如果没有选择trainer,我就不能按ctrl+e或者ctrl+q来激活快捷方式了

如何让训练器在未打开时获得按键?

我现在有这样的东西。

 private void Form1_KeyDown(object sender, KeyEventArgs e) 
        {
            if (Control.ModifierKeys == Keys.Control)
            {
                if (e.KeyCode == Keys.E) //When ctrl+e pressed, this runs
                {
}

您需要使用全局键盘钩子,周围有很多示例,但这里有一个在 codeproject 上的示例,使用起来非常简单。

http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook

您将不得不使用 user32.dll

中的 SetWindowsHookEX
[DllImport("user32.dll")]
static extern IntPtr SetWindowsHookEx(int idHook, keyboardHookProc callback, IntPtr hInstance, uint threadId); 

如果你想对某些特定的键盘快捷键做出反应,你可以使用API函数RegisterHotKey。有关如何从 C# 使用它的示例,请参阅 。