Mandah Mr.
Mandah Mr.

Reputation: 395

Simulate KeyPress in C# to Game

I'm trying to simulate a keypress into another window, which is a game. The things that don't work are:

Having problems with 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());
        }
}

It gives this error:

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)

I've referenced it from DirectX SDK tool kit 2007

I'm trying to send a key to another instance or handle. C++ or C# anything that works is fine, too.

Upvotes: 1

Views: 2298

Answers (1)

HatSoft
HatSoft

Reputation: 11191

Looks like you are trying to load a 32bit dll in a 64 bit solution, so please use the 64bit dll

Upvotes: 1

Related Questions