Autor
|
Tema: Problema con SendKeys C# (Leído 5,393 veces)
|
magarcan
Desconectado
Mensajes: 80
|
Hola!! Me he descargado una aplicación de ejemplo de un cliente que utiliza socket. Lo único que le he añadido ha sido ésto: switch (sRecieved) { case "\na": SendKeys.Send("algo"); break; case "\nb": SendKeys.Send("b"); break; } sRecieved es un string dónde se almacenan los datos que recive el socket. El caso es que la aplicación se cierra sin dar error ni nada. ¿Alguna idea? Os dejo aquí el código que estoy utilizando. http://www.mediafire.com/?l62u2w859gx55dgGracias!!
|
|
|
En línea
|
|
|
|
Keyen Night
Desconectado
Mensajes: 496
Nothing
|
Y cuál es el problema ._.?
|
|
|
En línea
|
La Fé Mueve Montañas... ...De Dinero
La programación es más que un trabajo es más que un hobby es una pasión...
|
|
|
magarcan
Desconectado
Mensajes: 80
|
El cliente se conecta al server sin problemas. Envío y recibo bien, pero cuando recibo uno de los caracteres definidos dentro del switch, en lugar de ejecutar el SendKeys, la aplicación se cierra sin enviar las teclas, cuando debería enviar las teclas y seguir abierta esperando nuevos envíos.
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Ve depurando a ver si entra a algun case de esos..
|
|
|
En línea
|
|
|
|
magarcan
Desconectado
Mensajes: 80
|
Sí, he comprobado que llega a entrar a los cases, pero cuando va a ejecutar la instrucción del SendKeys, no los manda y se cierra el programa. No da ni excepción ni leches, algo raro raro...
|
|
|
En línea
|
|
|
|
Keyen Night
Desconectado
Mensajes: 496
Nothing
|
Para enviar teclas y texto a ventanas a travéz de su handle yo uso la API SendMessage, funciona mejor que SendKeys mira estos ejemplos: public enum WindowMessage : int { WM_KEYDOWN = 0x0100, WM_KEYUP = 0x0101, WM_CHAR = 0x0102, WM_LBUTTONDOWN = 0x201, WM_LBUTTONUP = 0x202 } public static void SendKey(IntPtr WindowhWnd, Int32 key) { WinApi.SendMessage(WindowhWnd, WindowMessage.WM_KEYDOWN, (int)key, 0); WinApi.SendMessage(WindowhWnd, WindowMessage.WM_CHAR, (int)key, 0); WinApi.SendMessage(WindowhWnd, WindowMessage.WM_KEYUP, (int)key, 0); } public static void SendString(IntPtr WindowhWnd, string String) { foreach (var x in String) SendKey(WindowhWnd, Convert.ToInt32(x)); Thread.Sleep(3); }
|
|
|
En línea
|
La Fé Mueve Montañas... ...De Dinero
La programación es más que un trabajo es más que un hobby es una pasión...
|
|
|
magarcan
Desconectado
Mensajes: 80
|
Las "teclas" quiere que se envíen a un proceso concreto, ¿cómo podría obtener el handle?
|
|
|
En línea
|
|
|
|
Keyen Night
Desconectado
Mensajes: 496
Nothing
|
SendMessage no envia este tipo de mensajes a los procesos sino a las ventanas por lo tanto es el Handle (hWnd) de la ventana lo que necesitas obtener.
|
|
|
En línea
|
La Fé Mueve Montañas... ...De Dinero
La programación es más que un trabajo es más que un hobby es una pasión...
|
|
|
Unbr0ken
Desconectado
Mensajes: 248
|
Las "teclas" quiere que se envíen a un proceso concreto, ¿cómo podría obtener el handle?
Nativo: API -> FindWindow. Gestionado: IntPtr pHandle = Process.GetProcessesByName("ElProceso")[0].MainWindowHandle;...
|
|
« Última modificación: 27 Octubre 2011, 22:02 pm por Unbr0ken »
|
En línea
|
Discutir con desconocidos por internet es un ejercicio de imbéciles; todos acaban siendo quinceañeros arrogantes con cantidades infinitas de tiempo libre. NO resuelvo dudas vía MP, para algo está el foro.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sendkeys
Programación Visual Basic
|
ViCrack€r
|
7
|
4,284
|
20 Agosto 2005, 22:58 pm
por ViCrack€r
|
|
|
Problema con comando sendkeys
Programación Visual Basic
|
Robokop
|
2
|
1,722
|
5 Marzo 2006, 02:39 am
por Robokop
|
|
|
SendKeys
Programación Visual Basic
|
Lambda
|
2
|
2,126
|
17 Abril 2006, 19:45 pm
por Robokop
|
|
|
SENDKEYS
Programación Visual Basic
|
CARRY-ON
|
9
|
3,377
|
5 Junio 2006, 03:44 am
por kakinets
|
|
|
¿sendkeys?
Programación Visual Basic
|
dimitrix
|
1
|
1,582
|
26 Febrero 2007, 08:23 am
por <--v1c1ous-->
|
|