AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mausklick global simulieren

Ein Thema von the_seed · begonnen am 13. Aug 2004 · letzter Beitrag vom 14. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#1

Mausklick global simulieren

  Alt 13. Aug 2004, 15:06
hi, habe noch nicht sehr viele themen darüber gefunden?
wie kann ich einen mausklick simulieren (->global) ?
muss ich da ein mousehook inst. oder gibts da noch andre wege?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 15:21
geht ganz einfach mit
Delphi-Quellcode:
  mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
  mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 15:31
Das macht aber nur Sinn wenn das Programm nicht selbst im Vordergrund ist, da es sonst den Mausklick selber bekommt.
Entsprechend gibt es noch keybd_event bzw die neuere Funktion SendInput.
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#4

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 17:19
Ich habe mal einen C++-Code geschrieben, wo ich SendInput verwende (rauf und runter von linker und rechter maustaste).
Es ist nicht besonders einfach weil man ein kompliziertes Array füllen muss.
Hier der original-Code mit globalen Arrays zur Performancesteigerung:
Code:
#include <windows.h>
#include <winable.h> // bin mir nicht sicher ob man winable wirklich braucht oder ob das für etwas anderes war...ausprobieren...
INPUT runter,rauf, rechtsrunter, rechtsrauf; // mit runter und rauf ist die linke maustaste gemeint

void ldown(void); // linke maustaste runter
void lup(void); // linke maustaste rauf
void rdown(void); // rechte maustaste runter
void rup(void); // rechte maustaste rauf

...
...
...

// Beim Programmstart die Arrays mit Werten füllen:
   runter.mi.dx=0;
   runter.mi.dy=0;
   runter.mi.mouseData=0;
   runter.mi.dwFlags=MOUSEEVENTF_LEFTDOWN;
   runter.mi.dwExtraInfo=0;
   runter.mi.time=0;
   rauf.mi.dx=0;
   rauf.mi.dy=0;
   rauf.mi.mouseData=0;
   rauf.mi.dwFlags=MOUSEEVENTF_LEFTUP;
   rauf.mi.dwExtraInfo=0;
   rauf.mi.time=0;
   rechtsrunter.mi.dx=0;
   rechtsrunter.mi.dy=0;
   rechtsrunter.mi.mouseData=0;
   rechtsrunter.mi.dwFlags=MOUSEEVENTF_RIGHTDOWN;
   rechtsrunter.mi.dwExtraInfo=0;
   rechtsrunter.mi.time=0;
   rechtsrauf.mi.dx=0;
   rechtsrauf.mi.dy=0;
   rechtsrauf.mi.mouseData=0;
   rechtsrauf.mi.dwFlags=MOUSEEVENTF_RIGHTUP;
   rechtsrauf.mi.dwExtraInfo=0;
   rechtsrauf.mi.time=0;

...
...
...


// Da die Arrays bereits gefüllt sind, brauchen wir nur noch funktionen die SendInput aufrufen:

void ldown(void) // maustaste runter
{
   SendInput(1,&runter,sizeof(runter));
}

void lup(void) // maustaste rauf
{
   SendInput(1,&rauf,sizeof(rauf));
}

void rdown(void) // rechte maustaste runter
{
   SendInput(1,&rechtsrauf,sizeof(rechtsrauf));
}

void rup(void) // rechte maustaste rauf
{
   SendInput(1,&rechtsrunter,sizeof(rechtsrunter));
}
Getestet mit Visual C++ 6.0 Autorenversion.

Habe leider keine Zeit, den Code in Delphi zu übersetzen.
Dürfte nicht besonders schwer sein, vielleicht kann das ja ein anderer machen...oder ich ein wenig später...

Wenn du z.B. einen linken Mausklick simulieren willst, musst du nacheinander ldown und lup aufrufen.

Tubos
Lukas
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#5

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 17:34
ich will ein programm schreiben dass im hintergrund läuft und in regelmässigne zeitabständen einen mausklick simuliert bei bestimmten koordinaten durchführt fenster nicht bestimmt.
braucge ich dazu nen hook oder ist das ohne möglich... der og. befehl funktioniert nicht bzw nur im eigenen fenster...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 17:41
du brauchst dazu keinen hook!!!
Delphi-Quellcode:
mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
funktioniert ohne
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#7

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 17:49
Zitat von SirThornberry:
du brauchst dazu keinen hook!!!
das wollte ich ja wissen !!!
nur funktioniert die methode nicht wenn ich zb. nen mausklick simulieren will
x=52 y=726 koordinbaten des startbuttons bei ner auflösung von 1024x768 (bei mir)
tut sich gar nix...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 17:53
führst du die Methode in einem OnClick von einem Button aus? Dann gehts nicht weil das mit den KlickMessages des Buttons vermicht wird. In meinem Trojaner den ich mal geschrieben hab funktioniert die Variante wunderbar
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#9

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 18:11
Zitat von SirThornberry:
führst du die Methode in einem OnClick von einem Button aus? Dann gehts nicht weil das mit den KlickMessages des Buttons vermicht wird. In meinem Trojaner den ich mal geschrieben hab funktioniert die Variante wunderbar
nee hab nen timer benutzt... geht trotzdem nicht !
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 18:26
Zitat von SirThornberry:
In meinem Trojaner den ich mal geschrieben hab funktioniert die Variante wunderbar
Erschiessen den Kerl!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz