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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema con SendKeys C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con SendKeys C#  (Leído 5,393 veces)
magarcan

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Problema con SendKeys C#
« en: 22 Octubre 2011, 18:04 pm »

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

Gracias!!


En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Problema con SendKeys C#
« Respuesta #1 en: 22 Octubre 2011, 19:06 pm »

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 Desconectado

Mensajes: 80


Ver Perfil
Re: Problema con SendKeys C#
« Respuesta #2 en: 22 Octubre 2011, 19:09 pm »

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 Desconectado

Mensajes: 1.842



Ver Perfil
Re: Problema con SendKeys C#
« Respuesta #3 en: 22 Octubre 2011, 20:49 pm »

Ve depurando a ver si entra a algun case de esos..
En línea

magarcan

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Problema con SendKeys C#
« Respuesta #4 en: 22 Octubre 2011, 20:54 pm »

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 Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Problema con SendKeys C#
« Respuesta #5 en: 22 Octubre 2011, 22:25 pm »

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:

Código
  1.  
  2.            public enum WindowMessage : int
  3.            {
  4.                WM_KEYDOWN = 0x0100,
  5.                WM_KEYUP = 0x0101,
  6.                WM_CHAR = 0x0102,
  7.                WM_LBUTTONDOWN = 0x201,
  8.                WM_LBUTTONUP = 0x202
  9.            }
  10.  
  11.        public static void SendKey(IntPtr WindowhWnd, Int32 key)
  12.        {
  13.            WinApi.SendMessage(WindowhWnd, WindowMessage.WM_KEYDOWN, (int)key, 0);
  14.            WinApi.SendMessage(WindowhWnd, WindowMessage.WM_CHAR, (int)key, 0);
  15.            WinApi.SendMessage(WindowhWnd, WindowMessage.WM_KEYUP, (int)key, 0);
  16.        }
  17.  
  18.        public static void SendString(IntPtr WindowhWnd, string String)
  19.        {
  20.            foreach (var x in String)
  21.                SendKey(WindowhWnd, Convert.ToInt32(x));
  22.            Thread.Sleep(3);
  23.        }
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 Desconectado

Mensajes: 80


Ver Perfil
Re: Problema con SendKeys C#
« Respuesta #6 en: 22 Octubre 2011, 22:36 pm »

Las "teclas" quiere que se envíen a un proceso concreto, ¿cómo podría obtener el handle?
En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Problema con SendKeys C#
« Respuesta #7 en: 23 Octubre 2011, 01:17 am »

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 Desconectado

Mensajes: 248



Ver Perfil
Re: Problema con SendKeys C#
« Respuesta #8 en: 27 Octubre 2011, 21:04 pm »

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

Cita de: Snowcrash
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.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sendkeys
Programación Visual Basic
ViCrack€r 7 4,284 Último mensaje 20 Agosto 2005, 22:58 pm
por ViCrack€r
Problema con comando sendkeys
Programación Visual Basic
Robokop 2 1,722 Último mensaje 5 Marzo 2006, 02:39 am
por Robokop
SendKeys
Programación Visual Basic
Lambda 2 2,126 Último mensaje 17 Abril 2006, 19:45 pm
por Robokop
SENDKEYS
Programación Visual Basic
CARRY-ON 9 3,377 Último mensaje 5 Junio 2006, 03:44 am
por kakinets
¿sendkeys?
Programación Visual Basic
dimitrix 1 1,582 Último mensaje 26 Febrero 2007, 08:23 am
por <--v1c1ous-->
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines