Fuerza Bruta

17/05/2007 - 21:29 por Pablo Guevara | Informe spam
Amigos,

Me piden automatizar un proceso de registro de datos en un sistema, la idea
es hacer un programa que simule la digitacion en una aplicacion externa.

¿Alguien sabe por donde puedo iniciar la busqueda de esta solucion?

Gracias.

Pablo

+++
 

Leer las respuestas

#1 Diego Jancic
18/05/2007 - 01:31 | Informe spam
Hola,
Podes usar SendKeys para enviar cosas por el teclado:
http://msdn2.microsoft.com/es-es/li...s.sendkeys(VS.80).aspx

Y para usar el mouse es un poco mas complejo porque tenes que recurrir
a las apis en algunos casos...
Para saber o setear la posicion del cursor, podes usar
Cursor.Position, y para hacer un click te mando una clase completa que
lo hace (la pego abajo).

Espero que sea eso lo que necesitas..

Saludos!,
Diego



using System;
using System.Runtime.InteropServices;

namespace Cedev.UI.Windows.Utils
{
public class MouseEvents
{
private MouseEvents()
{
}

[DllImport("User32.dll", SetLastError = true)]
private static extern int SendInput(int nInputs, ref INPUT pInputs,
int cbSize);

//mouse event constants
private const int MOUSEEVENTF_LEFTDOWN = 2;
private const int MOUSEEVENTF_LEFTUP = 4;
//input type constant
private const int INPUT_MOUSE = 0;

private struct MOUSEINPUT
{
public int dx;
public int dy;
public int mouseData;
public int dwFlags;
public int time;
public IntPtr dwExtraInfo;
}

private struct INPUT
{
public uint type;
public MOUSEINPUT mi;
}

public static void SendClick()
{
INPUT i = new INPUT();
i.type = INPUT_MOUSE;
i.mi.dx = 0;
i.mi.dy = 0;
i.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
i.mi.dwExtraInfo = IntPtr.Zero;
i.mi.mouseData = 0;
i.mi.time = 0;
//send the input
SendInput(1, ref i, Marshal.SizeOf(i));
//set the INPUT for mouse up and send it
i.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, ref i, Marshal.SizeOf(i));
}
}
}

Preguntas similares