Mausklicks simulieren?

10/12/2012 16:06 marykillsjane#1
Hallo zusammen,

Ich möchte ein Programm schreiben welches einige mausklicks für mich simuliert.
Ich muss also als erstes das fenster finden in den Vordergrund setzen und das ganze in nen Thread packen damit ich es auch stoppen kann.
So nun zum Problem ich habe dieses tut gefunden :
und weiß nun auch schon wie ich die maus bewegen , und auf den gewünschten Punkt setzen kann.Aber wie lasse ich nun die maus klicken ?
Habe von einem befehl namens mouseevent oder so gehört aber bin bei google auf seite 15 und hab nix zu dem thema gefunden-.-

Kennt jmd von euch einen Befehl wie ich nun den mausklick simulieren kann?
10/12/2012 16:51 Dr. Coxxy#2
[Only registered and activated users can see links. Click Here To Register...]
10/12/2012 17:14 marykillsjane#3
Hmm hab das jetzt nicht ganz verstanden müsste es dann so aussehen?:

mouse_event(MOUSEEVENTF_LEFTDOWN,100,50);
wenn ich jetzt die linke maus klicken lassen will? die Koordinaten sind grad frei erfunden.
10/12/2012 17:46 Dr. Coxxy#4
[Only registered and activated users can see links. Click Here To Register...]

erster link, 2. post unten
10/12/2012 19:52 marykillsjane#5
Warum funktioniert das ganze nichtmehr sobald ich durch System ein externes Programm aufrufe?Immer wenn ich ein Programm starte bewegt sich die maus nichtmehr -.-
Hab die mouse down funktion sogar schon in nen eigenen Thread gepackt aber i-wie bewegt er die maus halt nicht sobald ich per system("")ein Programm starte .Weiß wer woran das liegt?

Edit:mit ShellExecute geht es allerdings interessiert mich trd weshalb das mit system nicht geht ^^.
10/14/2012 11:52 tnd0#6
System() um jeden Preis vermeiden und WinExec oder ShellExecute verwenden, schon wirds funktionieren. Wenn du im Forum nach tipps suchst, nimm sie dir doch auch bitte zu herzen, ansonsten können wir uns die Antworten auch sparen.

Der Grund ist simpel, System() blockiert dein Programm solange, bis das mit System() aufgerufene Programm beendet ist. Also entweder System() von einem anderen Thread ausführen (warum auch immer du System() verwenden willst) oder die nicht-blockierenden alternativen WinExec/ShellExecute benutzen. Ja, die brauchen mehr als einen Parameter und man muss sich evtl. die Mühe machen mal im MSDN nachzulesen was das für Parameter sind, aber so what.