![]() |
Problem mit Postmessage: Rechtsklick ausführen
Hi Leute,
ich möchte gerne einen Rechtsklick durch mein Programm ausführen lassen. Allerdings funktioniert das irgendwie nicht. Könnt ihr mir sagen, was ich falsch mache?
Delphi-Quellcode:
Gruss
PostMessage(0,WM_RBUTTONDOWN,0,0);
PostMessage(0,WM_RBUTTONUP,0,0); Daniel |
Re: Problem mit Postmessage: Rechtsklick ausführen
Hallo Daniel,
das Handle 0 ist für diese Message vielleicht etwas ungeschickt - da sollte schon jemand auf deine Message lauschen. Alles andere ist nicht unbedingt notwendig, aber macht mitunter Sinn:
Delphi-Quellcode:
Grüße vom marabu
procedure TDemoForm.ButtonClick(Sender: TObject);
var h: THandle; pt: TPoint; begin h := ActionPanel.Handle; // and 0; pt.X := 100; pt.Y := 10; PostMessage(h, WM_RBUTTONDOWN, MK_RBUTTON, pt.Y shl 16 + pt.X); PostMessage(h, WM_RBUTTONUP, MK_RBUTTON, pt.Y shl 16 + pt.X); end; Edit: debugging code auf Kommentar gesetzt |
Re: Problem mit Postmessage: Rechtsklick ausführen
Zitat:
wenn ich etwas mit 0 verunde kommt immer 0 raus! somit is h immer = 0. mit
Delphi-Quellcode:
gehts! :)
h := MyPanel.Handle;
|
Re: Problem mit Postmessage: Rechtsklick ausführen
Hmm danke!
Aber wie kann ich machen, dass der Klick Systemweit gesendet wird und nicht nur an ein bestimmtes Fenster oder so? Gruss Daniel |
Re: Problem mit Postmessage: Rechtsklick ausführen
dafür gibt es die Funktion "mouse_event". Dein Vorhaben ist also wie folgt Realisierbar:
Delphi-Quellcode:
SetCursorPos(x, y);
mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0); mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0); |
Re: Problem mit Postmessage: Rechtsklick ausführen
Danke :-D
So funktionierts! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz