• Jueves 9 de Diciembre de 2021, 15:05

Autor Tema:  Como simular leer de teclado para hacer un bot  (Leído 1990 veces)

ichigo15

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Como simular leer de teclado para hacer un bot
« en: Viernes 8 de Abril de 2011, 14:23 »
0
Hola. Mi idea es el simular que el usuario "teclea" una letra, lo que quiero conseguir por ejemplo es:

Abro el block de notas, ejecuto el programa, vuelvo el foco al notepad, y sin que yo toque nada, escriba una 'a'.
Me gustaría hacerlo sin tener que recurrir al lenguaje ensamblador.

Hay alguna biblioteca que te proporcione .NET que pueda hacer eso?

Si no, de que forma lo podria conseguir?
[size=109]Nadie elige su nombre, te lo ponen cuando naces, pero sí su nick


No eres responsable de la cara que tienes, pero sí de la que pones
[/size]

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Como simular leer de teclado para hacer un bot
« Respuesta #1 en: Viernes 8 de Abril de 2011, 16:53 »
0
Que yo sepa no hay ninguna bliblioteca de .NET que haga eso.

Lo que mencionas ya es programacion mas avanzada, creo que podria hacerse mediante llamadas directas a funciones del sistema operativo, aunque nunca he hecho nada parecido, creo que tendras que investigar tu mismo en MSDN.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Altrox

  • Nuevo Miembro
  • *
  • Mensajes: 17
  • Nacionalidad: es
    • Ver Perfil
Re: Como simular leer de teclado para hacer un bot
« Respuesta #2 en: Sábado 9 de Abril de 2011, 00:47 »
0
Buenas, como bien dijo ProfesorX, llamar directamente a funciones del sistema operativo.

Puedes utilizar el método GetForegroundWindow() que obtiene el puntero handle de la ventana activa.
Código: C#
  1.  
  2. [System.Runtime.InteropServices.DllImport("user32.dll")]
  3. private static extern IntPtr GetForegroundWindow();
  4.  
  5.  

También está GetWindowText() que obtiene el título de la ventana del handle que le indiques...
Código: C#
  1.  
  2. [System.Runtime.InteropServices.DllImport("user32.dll")]
  3. public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
  4.  
  5.  

para utilizar GetWindowText() puedes hacer lo siguiente:
Código: C#
  1.  
  2. IntPtr hWnd = GetForegroundWindow();
  3. StringBuilder txt  = new StringBuilder(64); //64 por ejemplo, como si es 128. Longitud. Para almacenar el texto
  4. GetWindowText(hWnd, txt, txt.Capacity);
  5. string titulo = txt.ToString();
  6.  
  7.  

Con esto puedes comprobar si el título contiene por ejemplo "Bloc de notas" y si es así hacer "algo".
También tienes SendKeys.Send() para enviar texto.

Saludos.

Rogerz

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Como simular leer de teclado para hacer un bot
« Respuesta #3 en: Jueves 2 de Junio de 2011, 23:30 »
0
y cual seria la utilidad para eso?