![]() |
Maus bewegen und Klick simulieren in minimiertem Fenster
Hallo ihr fleißigen Delphianer
Ich lese schon seit mehreren Wochen hier im Forum und habe mir bisher jede Frage durch die Suchfunktion beantworten können. Jetzt habe ich allerdings ein Problem, auf das ich auch nach längeren Suchen keine Antwort finden konnte, ich hoffe ihr könnt mir helfen: Ich möchte in einem minimierten Fenster verschiedene Sachen ausführen, wie z.B einen Mausklick an bestimmten Positionen. Einen Text an das Notepad zu senden hat bei mir bereits auf folgende Weise funktioniert:
Delphi-Quellcode:
Dieser Code funktionierte einwandfrei, jedoch sieht das ganz anders aus, wenn ich zum bespiel den Intenet explorer öffne und per simuliertem Mausklick auf den 'Suchen' Butten bei Google drücken will. Hierfür habe ich folgendes versucht:
var
wnd, wnde:Hwnd; s : string; ... s := 'beliebige Zeichen'; wnd:=findwindow('Notepad', nil); if wnd<>0 then begin wnde := FindWindowEx(wnd,0,'Edit',nil); if wnde<>0 then begin For i := 1 to Length(s) do begin SendMessage(wnde, WM_CHAR, Word(s[i]), 0); showmessage(s[i]); end; end; end;
Delphi-Quellcode:
Das funktionier nicht, aber folgendes funktioniert bei maximiertem Fenster:
var
wnd : Hwnd; Pt : TPoint; ... Pt.X := 780; Pt.Y := 260; wnd:=findwindow('IEFrame', nil); if wnd<>0 then begin Pt := ClientToScreen(Pt); Pt.x := Round(Pt.x * (65535 / Screen.Width)) ; Pt.y := Round(Pt.y * (65535 / Screen.Height)) ; sendmessage(wnd,WM_MouseMove,Pt.X,Pt.Y); // Ich weiß nicht, ob diese Zeile nötig ist, ohne sie funktioniert es genausowenig sendmessage(wnd,WM_LButtonDown,Pt.X,Pt.Y); sendmessage(wnd,WM_LButtonUp,Pt.X,Pt.Y); end;
Delphi-Quellcode:
Meine Frage ist nun:
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0) ;;
Kann ich in einem minimierten Fenster Mausklicks simulieren ohne, dass sich der "echte" Mauszeiger bewegt? Vielen Dank schon mal im Vorraus |
Re: Maus bewegen und Klick simulieren in minimiertem Fenster
Zitat:
zu senden. Dies, falls das Control ein Fenster Handle besitzt. Im Fall von IE funktioniert das nicht, da die Felder, Buttons im IE keine Handles besitzen. Dort musst du andere Wege gehen. Beispiele findest du im Forum. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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