public void sendKeyPress(ushort k) { WIN32_API.INPUT[] InputData = new WIN32_API.INPUT[2]; InputData[0].type = (IntPtr)1; //INPUT_KEYBOARD InputData[0].wScan = k; InputData[0].dwFlags = (IntPtr)WIN32_API.SendInputFlags.KEYEVENTF_SCANCODE; InputData[1].type = (IntPtr)1; //INPUT_KEYBOARD InputData[1].wScan = k; InputData[1].dwFlags = (IntPtr)((uint)WIN32_API.SendInputFlags.KEYEVENTF_SCANCODE | (uint)WIN32_API.SendInputFlags.KEYEVENTF_KEYUP); if (WIN32_API.SendInput(2, InputData, Marshal.SizeOf(InputData[0])) == 0) { System.Diagnostics.Debug.WriteLine("SendInput failed with code: " + Marshal.GetLastWin32Error().ToString()); parent.scriptControl.log("Keypress send failed: " + Marshal.GetLastWin32Error().ToString()); } }
public void sendKeyUp(ushort k) { WIN32_API.INPUT[] InputData = new WIN32_API.INPUT[1]; InputData[0].type = (IntPtr)1; //INPUT_KEYBOARD InputData[0].wScan = k; InputData[0].dwFlags =(IntPtr) ((uint)WIN32_API.SendInputFlags.KEYEVENTF_SCANCODE | (uint)WIN32_API.SendInputFlags.KEYEVENTF_KEYUP); if (WIN32_API.SendInput(1, InputData, Marshal.SizeOf(InputData[0])) == 0) { parent.scriptControl.log("SendInput failed with code: " + Marshal.GetLastWin32Error().ToString()); } }