我正在尝试将按键模拟到另一个窗口,这是一个游戏。不起作用的是:
遇到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());
}
}
它给出了这个错误:
Could not load file or assembly 'Microsoft.DirectX.DirectInput.dll' or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
我从DirectX SDK工具包2007引用它
我正在尝试将密钥发送到另一个实例或句柄。 C ++或C#任何有效的东西都可以。
答案 0 :(得分:0)
看起来你正试图在64位解决方案中加载32位dll,所以请使用64位dll