Const INPUT_MOUSE As UInteger = 0UI Const INPUT_KEYBOARD As UInteger = 1UI Const INPUT_HARDWARE As UInteger = 2UI <StructLayout(LayoutKind.Sequential)> _ Structure MOUSEINPUT Public dx As Integer Public dy As Integer Public mouseData As UInteger Public dwFlags As UInteger Public time As UInteger Public dwExtraInfo As IntPtr End Structure <StructLayout(LayoutKind.Sequential)> _ Structure KEYBDINPUT Public wVk As UShort Public wScan As UShort Public dwFlags As UInteger Public time As UInteger Public dwExtraInfo As IntPtr End Structure <StructLayout(LayoutKind.Sequential)> _ Structure HARDWAREINPUT Public uMsg As UInteger Public wParamL As UShort Public wParamH As UShort End Structure <StructLayout(LayoutKind.Explicit)> _ Structure INPUT <FieldOffset(0)> _ Public type As UInteger <FieldOffset(4)> _ Public mi As MOUSEINPUT <FieldOffset(4)> _ Public ki As KEYBDINPUT <FieldOffset(4)> _ Public hi As HARDWAREINPUT End Structure <DllImport("user32.dll", SetLastError:=True)> _ Function SendInput(ByVal nInputs As UInteger, ByRef pInputs As INPUT, ByVal cbSize As Integer) As UInteger End Function
Const KEYEVENTF_EXTENDEDKEY As UInteger = &H1UI Const KEYEVENTF_KEYUP As UInteger = &H2UI Const KEYEVENTF_SCANCODE As UInteger = &H8UI Const KEYEVENTF_UNICODE As UInteger = &H4UI Const VK_A As UShort = &H41 Sub Main() Dim pInputs As INPUT Dim rCount As UInteger pInputs.type = INPUT_KEYBOARD pInputs.ki.wVk = VK_A pInputs.ki.wScan = 0 pInputs.ki.dwFlags = 0UI pInputs.ki.time = 0UI pInputs.ki.dwExtraInfo = IntPtr.Zero rCount = SendInput(1UI, pInputs, Marshal.SizeOf(pInputs)) Console.ReadKey() ' Lecture de la touche simulé Console.WriteLine() Console.WriteLine("rCount = {0}", rCount) Console.ReadKey() End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
16 mars 2019 à 15:44
.
.
Sub appuyertouche(touche As Integer)
' paramètre touche peut prendre les valeurs de touches normales c'est à dire les même chiffre qui sont utilisés pour getkeystate de l'api Windows (65 pour a...)
Dim pInputs As INPUT
Dim rCount As UInteger
pInputs.type = INPUT_KEYBOARD
pInputs.ki.wVk = touche
pInputs.ki.wScan = 0
pInputs.ki.dwFlags = 0UI 'On presse la touche
pInputs.ki.time = 0UI
pInputs.ki.dwExtraInfo = IntPtr.Zero
rCount = SendInput(1UI, pInputs, Marshal.SizeOf(pInputs))
pInputs.ki.dwFlags = KEYEVENTF_KEYUP 'On relache la touche
rCount = SendInput(1UI, pInputs, Marshal.SizeOf(pInputs))
End Sub