我正在尝试将按键模拟到另一个窗口,这是一个游戏。不起作用的事情是:
- SendKey - 将输入作为字符串发送,例如一些文本或其他内容,但不用于 ENTER TAB 或其他关键键
- InputSimulator - 完全浪费时间
- SendInput - 对此也有一些问题。它不编译,我以前从未使用过它
- PostMessage - 似乎这两个几乎相同,它们再次发送文本但同样没有其他键,例如 ENTER TAB 或其他。如果我想按住键几秒钟,也无法计算出 wParam 的值。这是一个 32 位十六进制值,其中最后 16 位似乎是重复数。
- SendMessage - 见 PostMessage
- AUTOIT 或 AHK 如果有人知道如何将它们合并到 C# 中似乎有困难,这将有很大帮助,这意味着我可以在 C# .cs 文件中编写 AHK 脚本以便编译。COM,参考,或任何东西。
DirectInput 有问题
public void Test_KeyDown()
{
INPUT[] InputData = new INPUT[2];
Key ScanCode = Microsoft.DirectX.DirectInput.Key.W;
InputData[0].type = 1; //INPUT_KEYBOARD
InputData[0].ki.wScan = (short)VirtualKeyCode.NUMPAD2 ; //ScanCode;
InputData[0].ki.dwFlags = (int)KEYEVENTF.SCANCODE;
InputData[1].type = 1; //INPUT_KEYBOARD
InputData[1].ki.wScan = (short)VKeys.VK_W;
InputData[1].ki.dwFlags = (int)(KEYEVENTF.KEYUP | KEYEVENTF.UNICODE);
// send keydown
if (SendInput(2, InputData, Marshal.SizeOf(InputData[1])) == 0)
{
System.Diagnostics.Debug.WriteLine("SendInput failed with code: " +
Marshal.GetLastWin32Error().ToString());
}
}
它给出了这个错误:
无法加载文件或程序集“Microsoft.DirectX.DirectInput.dll”或其中之一 它的依赖关系。不是有效的Win32应用程序。 (来自 HRESULT 的异常:0x800700C1)
我从 DirectX SDK 工具包 2007 中引用了它
我正在尝试将密钥发送到另一个实例或句柄。C++ 或 C# 任何工作都很好,也是。