Hallo!
Ich also schon wieder mit nem Problem
Ich möchte/muss nen Mausklick simulieren. Ich weiß, das Problem ist alt, aber ich hab noch n Problem dazu: das Fenster, was ich klicken möchte, ist entweder minimiert, im Hintergrund oder ganz versteckt. Jedenfalls nicht im Vordergrund, daher kann ich nicht mit SetCursorPos() und mouse_event abrbeiten.
Ich hab mich jetzt mit Sendmessage versucht, aber das geht so gut wie nie:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure ClickWinAt(Wnd:Hwnd; X,Y:integer); var v:integer; begin v:= MakeLParam(X,Y);
SendMessage(wnd,WM_LBUTTONDOWN,MK_LBUTTON,v); Sleep(10); SendMessage(wnd,WM_LBUTTONUP,MK_LBUTTON,v); end; |
Die Prozedur soll einen Linksklick auf das Fenster wnd an Position X,Y relativ zur linken oberen Ecke des Fensters machen. Tut sie aber nicht. Interessant ist: manchmal gehts, aber ich weiß nicht unter welchen Umständen.
An falschen Koordinaten kann es nicht liegen, ich hab mir vorhin als Test mal ein DC geben lassen und nen Punkt gemalt, das passt alles.
Danke schonmal,
Sebastian
Edit: interessant. Man kann einen Klick auf eine OpenGL-Zeichenfläche simulieren, der kommt auch richtig an. In ein dann geöffnetes WebBrowser-Fenster kann man nicht klicken

"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."