Generar evento de teclado

Iniciado por diego_lp, 8 Febrero 2011, 17:17 PM

0 Miembros y 1 Visitante están viendo este tema.

diego_lp

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.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

Edu

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

diego_lp

No entendí  :-\
Yo no quiero captar una pulsacion del teclaro, sino justamente lo contrario, generarla desde código.
Gracias por contestar.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!


Edu

Ah perdon me confundi, mala mia xD

seba123neo

Hola, usa SendMessage...lo podes enviar donde sea.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

diego_lp

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.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

CH4ØZ

supongo q esto deberia funcionar
declaracion de la api, y constantes:
Código (vbnet) [Seleccionar]
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

Const WM_CHAR = &H102


uso:
Código (vbnet) [Seleccionar]
SendMessage(windowhandle, WM_CHAR, Keys.N, 0)
'Nota: WindowHandle es el handle de la ventana/control a la/al cual queres enviarle esa tecla.
no me juzguen si no me conocen

raul338


diego_lp

Muchas gracias a todos, ¿como hago para saber cual es el handle de la ventana/control?
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!