![]() |
Fenster bei Mausklick nicht aktivieren,ab. OnClick ausführen
Hi,
wie kann ich es realisieren, dass mein Programm , wenn ein anderes Programm den Focus hat, bei einem Klick auf einen Button nicht aktiviert wird, der Focus beim anderen Programm bleibt und dennoch die OnClick-Behandlungsroutine des Buttons ausgeführt wird? Folgendes habe ich bereits versucht:
Delphi-Quellcode:
Dabei geschieht aber nicht ganz das was ich will, sondern folgendes:
TForm1 = Class(...)
... procedure WMMouseActivate(var Message : TWMMouseActivate); message WM_MOUSEACTIVATE; ... procedure TForm1.WMMouseActivate(var Message: TWMMouseActivate); begin // Sicherstellen, dass eigenes Programm nicht aktiv ist if (not Application.Active) or (not Active) then begin //MA_NOACTIVATE = Nicht aktivieren, aber Klick ausführen. message.Result := MA_NOACTIVATE; end; end; Klick auf Fenster-Fläche: Fremde Anwendung verliert Focus, eigene Anwendung wird nicht aktiviert (immerhin) Klick z.B. auf Button: Fremde Anwendung verliert Focus, eigene Anwendung wird aktiviert, OnClick wird ausgeführt Wo liegt mein Fehler? :duck: Danke schonmal, Gruß Stephan :dance: [edit]Tippfehler[/edit] |
Re: Fenster bei Mausklick nicht aktivieren,ab. OnClick ausfü
Hallo,
du könntest vielleicht eine WM an die externe Anwendung schicken, so dass diese den Fokus wieder bekommt. Welche und wie du das machen kannst kann ich dir aber auch nicht sagen. Wozu soll das denn eigentlich gut sein? Florian |
Re: Fenster bei Mausklick nicht aktivieren,ab. OnClick ausfü
Hi,
ich hatte es schon mit GetFocus und SetFocus aus der Unit Windows versucht, aber GetFocus hat leider 0 zurückgeliefert. Also da liegt das Problem schon darin, dass ich das Handle von der vorher aktiven Anwendung nicht erhalte :? Am liebsten wäre es mir, wenn die andere Anwendung den Focus gar nicht erst verliert, ansonsten wäre das Zurücksetzen des Focus aus meinem Programm heraus wohl die nächste Möglichkeit, jo! Zum Sinn und Zweck: ich möchte mir ein kleines Tool schreiben, das auf Mausklick Standardtext in die aktive Anwendung eingibt (vgl. ![]() Gruß Stephan :dance: |
Re: Fenster bei Mausklick nicht aktivieren,ab. OnClick ausfü
Also da kann ich die auch nicht helfen...
Du müstest halt das Handle der erst aktivien Anwendung rausbekommen, dann funktioniert SetFocus auch sicherlich. Ansonsten hätte ich dir zum HotKey geraten, aber da du das ja nicht willst... Florian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 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