Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: diego_lp en 8 Febrero 2011, 17:17 pm



Título: Generar evento de teclado
Publicado por: diego_lp en 8 Febrero 2011, 17:17 pm
Hola a todos, estoy intentando crear una aplicacion que genere las pulsaciones del teclaro.
Eh probado con el metodo SendKeys.Send(Chr(Keys.W)) para emular la pulsacion de la W pero solo funciona si el foco lo tengo en un campo de texto, por lo que en realidad lo que esta haciendo es mandar solo el caracter precionado, pero no la tecla en sí.
Hay alguna forma de enviar la pulsacion?
Muchas gracias.
Saludos.


Título: Re: Generar evento de teclado
Publicado por: Edu en 8 Febrero 2011, 18:27 pm
En el evento key press, en el form, tenes q captar la pulsacion y cambiarla:

e.keychar = convert.tochar(keys.W);

algo asi era creo, lo hice al vuelo no tengo el vs ahora xD


Título: Re: Generar evento de teclado
Publicado por: diego_lp en 8 Febrero 2011, 18:33 pm
No entendí  :-\
Yo no quiero captar una pulsacion del teclaro, sino justamente lo contrario, generarla desde código.
Gracias por contestar.


Título: Re: Generar evento de teclado
Publicado por: [D4N93R] en 8 Febrero 2011, 22:21 pm
Sendkeys?
http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send.aspx


Título: Re: Generar evento de teclado
Publicado por: Edu en 9 Febrero 2011, 00:20 am
Ah perdon me confundi, mala mia xD


Título: Re: Generar evento de teclado
Publicado por: seba123neo en 9 Febrero 2011, 02:53 am
Hola, usa SendMessage...lo podes enviar donde sea.

saludos.


Título: Re: Generar evento de teclado
Publicado por: diego_lp en 9 Febrero 2011, 17:48 pm
El sendkeys envía el texto nada mas, yo necesito trabajar a más bajo nivel para que realmente presione una tecla, no se si se podrá en .Net.
El SendMessage no sé como usarlo y en google solo encuentro paginas en ingles con las que no me llevo muy bien, podrías poner un ejemplo simple para probarlo?
Muchas gracias a todos.


Título: Re: Generar evento de teclado
Publicado por: CH4ØZ en 9 Febrero 2011, 20:58 pm
supongo q esto deberia funcionar
declaracion de la api, y constantes:
Código
  1. Private Declare Ansi Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
  2.  
  3. Const WM_CHAR = &H102
  4.  

uso:
Código
  1. SendMessage(windowhandle, WM_CHAR, Keys.N, 0)
  2. 'Nota: WindowHandle es el handle de la ventana/control a la/al cual queres enviarle esa tecla.


Título: Re: Generar evento de teclado
Publicado por: raul338 en 10 Febrero 2011, 02:38 am
Busca sobre keybd_event (http://pinvoke.net/default.aspx/user32.keybd_event) :)


Título: Re: Generar evento de teclado
Publicado por: diego_lp en 10 Febrero 2011, 15:45 pm
Muchas gracias a todos, ¿como hago para saber cual es el handle de la ventana/control?


Título: Re: Generar evento de teclado
Publicado por: CH4ØZ en 10 Febrero 2011, 22:02 pm
usa las apis findwindow y findwindowex