如何检测使用C#在游戏(传奇联盟)中是否按下了按键?
我曾经很轻松地通过AHK做到这一点,但是由于我最近正在研究C#,所以我想转到c#。
你们有什么建议吗?
答案 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”命名空间。
编辑: 在以下链接中回答了这个问题:Trying to detect keypress
答案 1 :(得分:1)
我的朋友实现了一个线程级鼠标/键盘挂钩。
只需安装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,以了解如何操作。