如何使用C#检测游戏中按下的键

时间:2020-05-13 04:01:35

标签: c#

如何检测使用C#在游戏(传奇联盟)中是否按下了按键?

我曾经很轻松地通过AHK做到这一点,但是由于我最近正在研究C#,所以我想转到c#。

你们有什么建议吗?

3 个答案:

答案 0 :(得分:1)

我建议您应始终搜索文档并仔细阅读。

Bellow是根据Microsoft文档进行操作的示例

// Uses the Keyboard.IsKeyDown to determine if a key is down.
// e is an instance of KeyEventArgs.
if (Keyboard.IsKeyDown(Key.Return))
{
    btnIsDown.Background = Brushes.Red;
}
else
{
    btnIsDown.Background = Brushes.AliceBlue;
}

不要忘记导入“ System.Windows.Input”命名空间。

关注link 1Link 2,以获取更多信息。

编辑: 在以下链接中回答了这个问题:Trying to detect keypress

答案 1 :(得分:1)

我的朋友实现了一个线程级鼠标/键盘挂钩。

enter image description here

只需安装Nuget软件包并给我一些反馈即可。

Install-Package -IncludePrerelease Winook

示例:

var processes = Process.GetProcessesByName("LeagueOfLegendProcessName");
_process = processes.FirstOrDefault();
if (_process == null)
{
    return;
}

_keyboardHook = new KeyboardHook(_process.Id);
_keyboardHook.MessageReceived += KeyboardHook_MessageReceived;

...

private void KeyboardHook_MessageReceived(object sender, KeyboardMessageEventArgs e)
{
    Debug.WriteLine($"Keyboard Virtual Key Code: {e.VirtualKeyCode}; Flags: {e.Flags:x}");
}

答案 2 :(得分:0)

看看SetWindowsHookExA,它将使您了解鼠标和kb事件,并调查pinvoke.net,以了解如何操作。