AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Linken mausklick minimiert simulieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Linken mausklick minimiert simulieren?

Ein Thema von k4ni · begonnen am 10. Jan 2008 · letzter Beitrag vom 28. Aug 2009
Antwort Antwort
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#1

Linken mausklick minimiert simulieren?

  Alt 10. Jan 2008, 01:26
Hey leute,

Ist es möglich einen mausklick an einer bestimmten stelle and eine minimierte anwendung zu senden?
also z.b
RightClick(222, 444);

Ohne damit sich die Maus bewegt natürlich.

Möglich?
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#2

Re: Linken mausklick minimiert simulieren?

  Alt 10. Jan 2008, 02:58
wenn du das handle des entsprechenden Fensters hast, lässt sich das mitttels SendMessage/PostMessage und WM_LButtonDown/WM_LButtonUp machen. Da ich die Vermutung habe, du möchtest einen button anklicken, musst du dessen handle verwenden, wenn dieser eins hat, da du sonst "dahinter" klickst

informationen zu der message findest du im MSDN

mein Testprogramm (um zu testen ob die message im minimierten zustand verabeitet wird):

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var wnd:Hwnd;
begin
  wnd:=findwindow(nil,'Image-Scanner');
  if wnd<>0 then
  begin
    sendmessage(wnd,WM_LButtonDown,0,0);
    sendmessage(wnd,WM_LButtonUp,0,0);
  end else
    showmessage('not found');
end;
das gegenprogramm hatte einfach nur ne showmessage() im Mousedown. Diese ist jedoch erst beim restore sichtbar geworden

( auch ein schönes Beispiel um den Unterschied zwischen Sendmessage und Postmessage zu demonstrieren )

HTH Frank
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Linken mausklick minimiert simulieren?

  Alt 10. Jan 2008, 10:55
bei einigen Anwendungen klappt es nicht da diese die aktuelle Mausposition nochmal abfragen. Und wenn die Maus an einer anderen Stelle ist wird nichts gemacht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#4

Re: Linken mausklick minimiert simulieren?

  Alt 10. Jan 2008, 13:06
man könnte sich natürlich auch die mausposition merken, auf die entsprechende position setzen, sendmessage verwenden und dann die maus wieder zurücksetzen

je nachdem wie schnell das andere Programm die Nachricht bearbeitet, ist es möglich dass man den Maussprung gar nicht groß merkt...
die Frage ist halt, ob das bei seiner Anwendung nötig ist...

HTH Frank
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Linken mausklick minimiert simulieren?

  Alt 10. Jan 2008, 13:17
Oh okay danke.
Doch das simuliert doch nur einen mausklick irgendwo oder?
Ich will es aber an bestimmten stellen haben, und die procedure bei der ich das benützen werde macht das öfters an verschiedenen stellen. Ist das überhaupt möglich?

Oder wird das bei der minimierten anwendung da simuliert, wo sich die maus gerade bei der anderen befindet?
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#6

Re: Linken mausklick minimiert simulieren?

  Alt 10. Jan 2008, 13:21
hast du meinen Text genau durchgelesen? besonders den MSDN-Artikel? dort steht, wie du die Koordinaten angibst, ich mache momentan einen klick bei x=0,y=0. die kordinaten kannst du natürlich auch mittels random ermitteln, ggf. ger getWindowRect (weis jetzt nicht, ob das im minimierten Zustand korrekt funktioniert) die fenstergröße ermitteln.

Gruß Frank
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Linken mausklick minimiert simulieren?

  Alt 14. Jan 2008, 21:13
Sorry für bump aberr:

Ich hab das nicht hinbekommen und hab ein bisschen rumgegoogelt freund gefragt usw.
Und dann bin ich zu diesem ergebnis gekommen:
Delphi-Quellcode:
SendMessage(wnd, WM_LButtonDown, MK_LBUTTON, MakeLParam(189, 887));
SendMessage(wnd, WM_LButtonUp, MK_LBUTTON, MakeLParam(189, 887));
Aber irgendwie funktioniert das auch nicht...Idee?
  Mit Zitat antworten Zitat
warmuth

Registriert seit: 5. Aug 2009
12 Beiträge
 
#8

Re: Linken mausklick minimiert simulieren?

  Alt 28. Aug 2009, 00:47
Ich hab leider keine idee aber ich würde mich über eine lösung sehr freuen!
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:20 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