Tag: sendinput

SendInput和64位

下面是我用来模拟通过SendInput API按键的一些代码的摘录。 如果我将我的应用程序设置为x86 CPU编译,但不能用于x64 CPU编译,此工作正常。 我猜测它有一些事实,即x64使用双倍大小的指针,但我试图改变这个[FieldOffset(4)]到这个[FieldOffset(8)]但它没有工作。 它可能是一个事实,它是导入的32位版本的user32.dll? #region SendInput API [DllImport("user32.dll", EntryPoint = "SendInput", SetLastError = true)] static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize); [DllImport("user32.dll", EntryPoint = "GetMessageExtraInfo", SetLastError = true)] static extern IntPtr GetMessageExtraInfo(); private enum KeyEvent { KeyUp = 0x0002, KeyDown = 0x0000, ExtendedKey = 0x0001 } private struct KEYBDINPUT { […]

通过user32.dll中的SendInput发送密钥

我正在使用此板作为演示目的的键盘。 无论如何,使长话短说一切正常,除了极less数情况下。 我用位于user32.dll中的SendInput函数发送击键。 所以我的程序看起来像: static void Main(string[] args) { Console.Write("Press enter an on the next secont the key combination shift+end will be send"); Console.Read(); Thread.Sleep(1000); SendKeyDown(KeyCode.SHIFT); SendKeyPress(KeyCode.END); SendKeyUp(KeyCode.SHIFT); Console.Read(); Console.Read(); } [DllImport("user32.dll", SetLastError = true)] private static extern uint SendInput(uint numberOfInputs, INPUT[] inputs, int sizeOfInputStructure); /// <summary> /// simulate key press /// </summary> /// <param […]