Autor
|
Tema: Alternativa a keybd_event ? (Leído 5,690 veces)
|
LeandroA
|
Buenas alguien conoce una api o alternativa a keybd_event (Que no sea SendKeys o SendMessage)
SAludos.
|
|
|
En línea
|
|
|
|
LeandroA
|
bueno parce que SendInput es la alternativa, aun no lo pruevo, este es un ejemplo del api guide pero no logro liberarme del Copymemory, ... sigo devajo Const VK_H = 72 Const VK_E = 69 Const VK_L = 76 Const VK_O = 79 Const KEYEVENTF_KEYUP = &H2 Const INPUT_MOUSE = 0 Const INPUT_KEYBOARD = 1 Const INPUT_HARDWARE = 2 Private Type MOUSEINPUT dx As Long dy As Long mouseData As Long dwFlags As Long time As Long dwExtraInfo As Long End Type Private Type KEYBDINPUT wVk As Integer wScan As Integer dwFlags As Long time As Long dwExtraInfo As Long End Type Private Type HARDWAREINPUT uMsg As Long wParamL As Integer wParamH As Integer End Type Private Type GENERALINPUT dwType As Long xi(0 To 23) As Byte End Type Private Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Private Sub Form_KeyPress(KeyAscii As Integer) 'Print the key on the form Me.Print Chr$(KeyAscii); End Sub Private Sub Form_Paint() 'KPD-Team 2000 'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net 'Clear the form Me.Cls 'call the SendKey-function SendKey VK_H SendKey VK_E SendKey VK_L SendKey VK_L SendKey VK_O End Sub Private Sub SendKey(bKey As Byte) Dim GInput(0 To 1) As GENERALINPUT Dim KInput As KEYBDINPUT KInput.wVk = bKey 'the key we're going to press KInput.dwFlags = 0 'press the key 'copy the structure into the input array's buffer. GInput(0).dwType = INPUT_KEYBOARD ' keyboard input CopyMemory GInput(0).xi(0), KInput, Len(KInput) 'do the same as above, but for releasing the key KInput.wVk = bKey ' the key we're going to realease KInput.dwFlags = KEYEVENTF_KEYUP ' release the key GInput(1).dwType = INPUT_KEYBOARD ' keyboard input CopyMemory GInput(1).xi(0), KInput, Len(KInput) 'send the input now Call SendInput(2, GInput(0), Len(GInput(0))) End Sub
al parecer esta api trabja con diferentes extructuras y los del apiguide para generalizar utilizaron un array de bits para copiar la extructura a este, yo solo voy a utilizar KEYBDINPUT lo que no entiendo no me funciona si uilizo esta estructura de esta forma
Private Type tINPUT dwType As Long ki As KEYBDINPUT End Type
si bien ellos redimencionan el array a 24 bits KEYBDINPUT tiene como largo 32 bits bueno en fin sigo probando hasta que salga. si alguien puede que chifle. saludos.
|
|
« Última modificación: 6 Enero 2011, 05:14 am por LeandroA »
|
En línea
|
|
|
|
cobein
|
Modifica Private Type KEYBDINPUT wVk As Integer wScan As Integer dwFlags As Long time As Long dwExtraInfo As Long End Type
Private Type GENERALINPUT dwType As Long xi as KEYBDINPUT '<------ aca End Type eso tendria que arreglarlo si solamente queres el keyboard
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Puedo preguntar por que intentas evitar keybd_event()?
|
|
|
En línea
|
|
|
|
LeandroA
|
Modifica Private Type KEYBDINPUT wVk As Integer wScan As Integer dwFlags As Long time As Long dwExtraInfo As Long End Type
Private Type GENERALINPUT dwType As Long xi as KEYBDINPUT '<------ aca End Type eso tendria que arreglarlo si solamente queres el keyboard Hola Cobein probe de esa forma pero no funciono, para que ande tube que agregar ocho byte mas para completar los 24 bytes Private Type KEYBDINPUT wVk As Integer wScan As Integer dwFlags As Long time As Long dwExtraInfo As Long End Type
Private Type GENERALINPUT dwType As Long xi As KEYBDINPUT Relleno(0 To 7) As Byte '<------ aca End Type @Karcrack Es una mejora para el "escritorio remoto", no me funcionaba bien las partes de las pulsaciones, no te explico con detalles porque es un chivo largo, pero bueno la idea es buscar un sustituto haber si mejora la cosa. Saludos y gracias por todo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Alternativa a $HTTP_REFERER
Desarrollo Web
|
Tapanez
|
1
|
5,518
|
30 Diciembre 2010, 21:20 pm
por Graphixx
|
|
|
Combinación de teclas en keybd_event
Programación Visual Basic
|
gulabyte
|
8
|
9,553
|
3 Febrero 2009, 20:05 pm
por gulabyte
|
|
|
Alternativa a pow? [c]
« 1 2 »
Programación C/C++
|
flacc
|
10
|
11,847
|
11 Diciembre 2010, 15:25 pm
por pucheto
|
|
|
keybd_event
Programación C/C++
|
MessageBoxA
|
0
|
1,651
|
19 Marzo 2013, 06:36 am
por MessageBoxA
|
|
|
[?]alternativa a keybd_event
Programación C/C++
|
Ahustinkrone
|
1
|
1,902
|
1 Junio 2014, 01:12 am
por ivancea96
|
|