hi @ all
habe folgendes problem:
ich will an ein fenster einen mausclick senden.
dass funktioniert auch wunderbar, solange das fenster fokusiert ist, jedoch nicht wenn das fenster minimiert ist oder den fokus verliert.
code, welcher nicht funktioniert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure LeftClick(wnd: hwnd; PosX, PosY: integer); begin PostMessage(wnd, WM_MOUSEMOVE , 0 , MakeLParam(PosX, PosY)); PostMessage(Wnd, WM_LBUTTONDOWN, MK_LBUTTON, MakeLParam(PosX, PosY)); PostMessage(Wnd, WM_LBUTTONUP , MK_LBUTTON, MakeLParam(PosX, PosY)); end; |
das interessante daran ist, das bewegen der maus funktioniert, auch bei nicht fokusiertem fenster, aber der click nicht *confused*
habe schon überall gesucht, aber keine passende lösung gefunden.
man kann das fenster wiederherstellen und dann in den vordergund holen, etwa so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure LeftClick(wnd: hwnd; PosX, PosY: integer); begin PostMessage(wnd, WM_SYSCOMMAND, SC_RESTORE, 0); BringWindowToTop(wnd); SetForeGroundWindow(wnd); PostMessage(wnd, WM_MOUSEMOVE , 0 , MakeLParam(PosX, PosY)); PostMessage(Wnd, WM_LBUTTONDOWN, MK_LBUTTON, MakeLParam(PosX, PosY)); PostMessage(Wnd, WM_LBUTTONUP , MK_LBUTTON, MakeLParam(PosX, PosY)); end; |
damit funktioniert es wunderbar.
jedoch währe es mir lieber, wenn ich dass nicht machen müsste, gibts da ne lösung?
danke für eure vorschläge/hilfe
