gpt4 book ai didi

c# - 使用直接输入将击键发送到游戏

转载 作者:太空狗 更新时间:2023-10-29 21:11:35 25 4
gpt4 key购买 nike

我可以使用 PostMessage api 发送任何 Windows 应用程序击键。但是我无法使用 PostMessage 将击键发送到游戏窗口。

任何人都知道如何使用直接输入函数从 C# 向游戏发送 key 。

最佳答案

一种替代方法是使用键盘驱动程序(这不是 SendInput())来模拟按键和事件鼠标按下,而不是连接到 DirectX。

您可以使用 Oblita's Interception keyboard driver(适用于 Windows 2000 - Windows 7)和 C# library Interception(包装要在 C# 中使用的键盘驱动程序)。

有了它,您可以做一些很酷的事情,例如:

input.MoveMouseTo(5, 5);
input.MoveMouseBy(25, 25);
input.SendLeftClick();

input.KeyDelay = 1; // See below for explanation; not necessary in non-game apps
input.SendKeys(Keys.Enter); // Presses the ENTER key down and then up (this constitutes a key press)

// Or you can do the same thing above using these two lines of code
input.SendKeys(Keys.Enter, KeyState.Down);
Thread.Sleep(1); // For use in games, be sure to sleep the thread so the game can capture all events. A lagging game cannot process input quickly, and you so you may have to adjust this to as much as 40 millisecond delay. Outside of a game, a delay of even 0 milliseconds can work (instant key presses).
input.SendKeys(Keys.Enter, KeyState.Up);

input.SendText("hello, I am typing!");

/* All these following characters / numbers / symbols work */
input.SendText("abcdefghijklmnopqrstuvwxyz");
input.SendText("1234567890");
input.SendText("!@#$%^&*()");
input.SendText("[]\\;',./");
input.SendText("{}|:\"<>?");

因为这些按键背后的机制是键盘驱动程序,所以它几乎不受限制。

关于c# - 使用直接输入将击键发送到游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/409886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com