Aykut Çevik

Klischees müssen erfüllt werden

Mouseclick mit C# auf dem Bildschirm simulieren

without comments

Als ich heute auf Facebook eine Anwendung, welche die Mouseklicks in 10 Sekunden zählt, gesehen habe, musste ich mich gleich ransetzen und alle überbieten. Mit dem Finger in 10 Sekunden viele Mouseklicks zu machen ist nicht wirklich möglich. Also griff ich auf die Windows API mouse_event zurück, welche Mouseclicks simuliert. Sozusagen ein kleines Schummelprogramm, um von der Masse bei Facebook abzuheben ;)

Das Programm kann auch als Projektmappe hier runtergeladen werden:

  SendClickAPI (5,6 KiB, 101 hits)

Quellcode:

using System.Runtime.InteropServices;

namespace SendClick
{
 class Program
 {
 [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
 public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

 /// <summary>
 /// Konstanten für Mouseevents
 /// </summary>
 private const int MOUSEEVENTF_LEFTDOWN = 0x02;
 private const int MOUSEEVENTF_LEFTUP = 0x04;
 private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
 private const int MOUSEEVENTF_RIGHTUP = 0x10;

 static void Main(string[] args)
 {
 // Startverzögerung, um für die Positionierung der Mouse noch genug Zeit zu haben
 System.Threading.Thread.Sleep(3000);

 // Starte 409 Klicks
 for (int i = 0; i < 409; i++)
 {
 DoMouseClick();
 // Kleine Verzögerung
 System.Threading.Thread.Sleep(20);
 }

 }

 public static void DoMouseClick()
 {
 // Aktuelle Position des Mauszeigers
 int X = System.Windows.Forms.Cursor.Position.X;
 int Y = System.Windows.Forms.Cursor.Position.Y;
 // Event auslösen
 mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
 }

 }
}

Artikel, die für Sie interessant sein könnten

Written by Aykut Çevik

Juni 2nd, 2010 at 10:30 pm

Posted in C#,Programmieren

Tagged with , ,

Facebook Kommentare:

Leave a Reply