Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Julio 09, 2008, 10:59:53
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Visual Basic y Net (Moderador: ANYD00M)  |  Tema: Duda con SendKeys 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Duda con SendKeys  (Leído 154 veces)
NorK
Moderación
Habitual
*****
Desconectado Desconectado

Mensajes: 229


Respeto al sabio por sabiduria o por torpeza.


Ver Perfil WWW
« en: Febrero 03, 2007, 08:07:58 »

Hola, alguien sabe como podria hacer para que el sendkeys solamente me enviara el texto a una aplicacion abierta aunque esta pierda el foco principal? Es decir si pongo Sendkeys ("algo") se enviara a la ventana que tienes en pantalla pero yo solamente quiero enviarla a una especifica.
ByE! Afro
En línea


azrael
Visitante
« Respuesta #1 en: Febrero 03, 2007, 08:32:28 »

Hola,  para empezar sendkeys NO envia texto, solo envia un keycode a la ventana activa "emulando"  una pulsacion, fijate en este code, usando keystrokes en la api para el evento keyboard_event que escribiremos:


Private Declare Sub keyboard_event Lib "user32" ( _
   ByVal bVkey As Byte, ByVal bScan As Byte, _
   ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2

Private Declare Function GetVersion Lib "kernel32" () As Long
Private Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA" ( _
   ByVal cChar As Byte) As Integer
Private Declare Function VkKeyScanW Lib "user32" ( _
   ByVal cChar As Integer) As Integer

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)


Public Sub KeyDown(ByVal vKey As KeyCodeConstants)
   keyboard_event vKey, 0, KEYEVENTF_EXTENDEDKEY, 0
End Sub

Public Sub KeyUp(ByVal vKey As KeyCodeConstants)
   keyboard_event vKey, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End Sub

Public Function KeyCode(ByVal sChar As String) As KeyCodeConstants
Dim bNt As Boolean
Dim iKeyCode As Integer
Dim b() As Byte
Dim iKey As Integer
Dim vKey As KeyCodeConstants
Dim iShift As ShiftConstants

   ' Determina si tenemos soporte para unicode o no:
   bNt = ((GetVersion() And &H80000000) = 0)
   
   ' Obtiene el scan code:
   If (bNt) Then
      b = sChar
      CopyMemory iKey, b(0), 2
      iKeyCode = VkKeyScanW(iKey)
   Else
      b = StrConv(sChar, vbFromUnicode)
      iKeyCode = VkKeyScan(b(0))
   End If
   
   KeyCode = (iKeyCode And &HFF&)

End Function




El resultado:


podras hacer esto directamente:

cSK.SendKeys "New Text"  al textbox que elijas....



Aqui un code ejemplo donde podras ver el correcto uso de sendkeys via keystrokes:

http://www.crackenfind.net/newbies/SendKeys.rar


saludos
« Última modificación: Febrero 03, 2007, 08:48:46 por codelogman » En línea
NorK
Moderación
Habitual
*****
Desconectado Desconectado

Mensajes: 229


Respeto al sabio por sabiduria o por torpeza.


Ver Perfil WWW
« Respuesta #2 en: Febrero 03, 2007, 08:50:05 »

Gracias codelogman de lujo Grin
ByE! Afro
En línea


Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Visual Basic y Net (Moderador: ANYD00M)  |  Tema: Duda con SendKeys « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC