elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Alternativa a keybd_event ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Alternativa a keybd_event ?  (Leído 5,426 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Alternativa a keybd_event ?
« en: 6 Enero 2011, 03:30 am »

Buenas alguien conoce una api o alternativa a keybd_event  (Que no sea SendKeys o SendMessage)

SAludos.


En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Alternativa a keybd_event ?
« Respuesta #1 en: 6 Enero 2011, 05:10 am »

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
Código:
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


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Alternativa a keybd_event ?
« Respuesta #2 en: 6 Enero 2011, 06:34 am »

Modifica

Código:
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

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Alternativa a keybd_event ?
« Respuesta #3 en: 6 Enero 2011, 11:41 am »

Puedo preguntar por que intentas evitar keybd_event()? :P
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Alternativa a keybd_event ?
« Respuesta #4 en: 6 Enero 2011, 15:58 pm »

Modifica

Código:
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

Código:
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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Alternativa a $HTTP_REFERER
Desarrollo Web
Tapanez 1 5,305 Último mensaje 30 Diciembre 2010, 21:20 pm
por Graphixx
Combinación de teclas en keybd_event
Programación Visual Basic
gulabyte 8 9,162 Último mensaje 3 Febrero 2009, 20:05 pm
por gulabyte
Alternativa a pow? [c] « 1 2 »
Programación C/C++
flacc 10 11,163 Último mensaje 11 Diciembre 2010, 15:25 pm
por pucheto
keybd_event
Programación C/C++
MessageBoxA 0 1,413 Último mensaje 19 Marzo 2013, 06:36 am
por MessageBoxA
[?]alternativa a keybd_event
Programación C/C++
Ahustinkrone 1 1,657 Último mensaje 1 Junio 2014, 01:12 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines