AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mausklick ausführen, ohne Mauszeigerbewegung.
Thema durchsuchen
Ansicht
Themen-Optionen

Mausklick ausführen, ohne Mauszeigerbewegung.

Ein Thema von Lostriga · begonnen am 12. Jan 2010 · letzter Beitrag vom 23. Feb 2010
Antwort Antwort
Seite 1 von 3  1 23      
Lostriga

Registriert seit: 14. Jun 2008
28 Beiträge
 
#1

Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 00:06
Aloa ihr´s,

war ja schon lange nicht mehr hier.

Ich habe mal ein kleines Problemchen, welches mir noch nicht zu lösen gelang.

Wie es der Titel dieses Thread schon aussagt, suche ich nach einer Möglichkeit
einen Mausklick auszuführen ohne das dafür der Mauszeiger bewegt werden muss.
Ich weis nicht ob das in Wunschdenken endet oder gar doch möglich ist,
denn in den Weiten des Internets habe ich nicht´s dazu gefunden.

Für´s 100% verständliche:
Sagen wir der Mauszeiger befindet sich an der Desktop Position x:300/y:700,
nun möchte ich einen Mausklick simulieren der auf der Position x:800/y:500 ausgeführt werden soll.
Mir ist bekannt, dass ich die Maus unteranderem per SetCursorPos an diesen Zielpunkt hinbewegen kann,
mein Versuch ist es aber nun, den Klick ohne jeglicher Bewegung des Cursor´s
an der angestrebten Koordinate auszuführen, woran ich derzeit allerdings scheiterte.


Über PostMessage und Mouse_Event bin ich zu keinem Ergebnis gekommen,
kennt da einer von euch vielleicht eine Möglichkeit?, oder bleibt es doch nur eine Vorstellung.


Mit freundlichem Gruß

Lostriga
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 00:11
Du willst also nur an irgendeine bestimmte Stelle klicken und nicht auf einen Button der dergleichen?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 00:16
Was spricht gegen folgendes?
Delphi-Quellcode:
procedure TForm.MakeMouseClick(AP: TPoint);
var P:TPoint;
begin
  if GetCursorPos(P) then begin
    SetCursorPos(AP.X, AP.Y);
    Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    SetCursorPos(P.X, P.Y);
  end;
end;
  Mit Zitat antworten Zitat
Lostriga

Registriert seit: 14. Jun 2008
28 Beiträge
 
#4

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 00:31
Aloa,

danke für die raschen Antworten.

@ s.h.a.r.k
Ja ich möchte einfach einen Mausklick an einer bestimmten Position ausführen,
das halt ohne den Cursor zu bewegen.

@ omata
Deine eventuelle Lösung sieht interessant aus,
doch leider kann ich grad nicht´s mit dem (AP: TPoint) in der Procedure anfangen.
Wärst du so lieb und würdest das mit etwas mehr Quelltext erklären?


Mit freundlichem Gruß

Lostriga
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 00:34
Ok...

Aufruf:
Delphi-Quellcode:
var P:TPoint;
begin
  P.X:=100;
  P.Y:=100;
  MakeMouseClick(P);
end;
  Mit Zitat antworten Zitat
Lostriga

Registriert seit: 14. Jun 2008
28 Beiträge
 
#6

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 00:52
Aloa,

ich weis nicht, aber ich glaube ich steh auf´m Kopf.

Das sagt mir nun dennoch nichts, es ist dieses direkte (AP: TPoint),
welches in der Procedure steht womit ich gerade nicht klar komme.

Bei mir kommt halt immer ein (Sender: TObject), mit eventuellem var, jenachdem welches Ereignis halt.
Ich komme grad halt nicht auf das (AP: TPoint), weist was ich meine?, was hast du da benutzt?


Mit freundlichem Gruß

Lostriga
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 00:54
Ne, kann deine Probleme nicht nachvollziehen.

Versuche es deshalb mal so, in der Hoffnung, dass dir das besser gefällt:
Delphi-Quellcode:
procedure TForm.MakeMouseClick(X, Y:integer);
var P:TPoint;
begin
  if GetCursorPos(P) then begin
    SetCursorPos(X, Y);
    Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    SetCursorPos(P.X, P.Y);
  end;
end;
Edit: Du must doch irgendwo diese Routine Aufrufen wollen? Wo kommen die Koordinaten her, an denen du den Mausklick durchführen möchtest?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 01:01
Kurz zur Klärung: Dieses AP: TPoint ist der Zielpunkt, an dem geklickt werden soll. Du musst doch irgendwoher diesen Punkt haben. Nun musst halt entweder eine Methode schreiben, was ich auf jeden Fall rate, oder du packst es irgendwie in eine Klasse.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 01:10
MakeMouseClick ist doch eine eigene Methode.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#10

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 01:19
Mein Kommentar war für Lostriga. Ich denke er hat noch nicht ganz verstanden, wo der Punkt herkommt.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 04:57 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