![]() |
Software gesucht, die Fokus-Klau findet
Hallo,
kennt jemand eine Software, die rausfinden kann, wer gerade den Fokus hat? Mir passiert es manchmal, dass ein Fenster in dem ich gerade bin, den Fokus verliert und kurz darauf wieder erhält. Also irgendjemand ist der Fokus-Klauer - und den würd ich gerne finden |
AW: Software gesucht, die Fokus-Klau findet
Vielleicht so:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; ListBox2: TListBox; Timer1: TTimer; procedure FormActivate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export; var Title, ClassName: array[0..255] of char; begin Result := True; GetWindowText(wHandle, Title, 255); GetClassName(wHandle, ClassName, 255); if IsWindowVisible(wHandle) then lb.Items.Add(IntToStr(lb.Count +1)+' : '+ String(Title) + '-' + string(ClassName)); if GetForegroundWindow = wHandle then begin // ShowMessage(String(Title) + '-' + string(ClassName)); Form1.ListBox2.Items.Add(IntToStr(lb.Count +1)+' : '+ String(Title) + '-' + string(ClassName)); end; end; procedure TForm1.FormActivate(Sender: TObject); begin Listbox1.Clear; Listbox2.Clear; EnumWindows(@EnumWindowsProc, Integer(Listbox1)); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Listbox1.Clear; EnumWindows(@EnumWindowsProc, Integer(Listbox1)); end; |
AW: Software gesucht, die Fokus-Klau findet
Wie wäre es mit dem MS Spy + Filterung nach entsprechende WM-Messages die dafür verantwortlich sein könnten.
|
AW: Software gesucht, die Fokus-Klau findet
Hallo,
ich vergaß zu erwähnen, dass es sich nicht um mein Programm handelt sondern generell im Windows |
AW: Software gesucht, die Fokus-Klau findet
Alle Vorschläge gingen bisher global auf das ganzze Windows.
Wenn es um den Fokus im eigenen Windows geht, dann könnte man sich an Application.OnMessage hängen, bzw. besser doch an TApplicationEvents.OnMessage und reagiert dort nur auf Messages im eigenen Programm. Oder, wie auch schon erwähnt: - über das genannte Programm alle Messages mitloggen, wobei ich dachte, daß es da auch noch ein Programm von Sysinternals gäbe - oder eben alle x Millisekunden schauen welches Fenster aktiv ist - - über dieses Handle kann man nun an den zugehörigen Process rankommen - - und man kommt darüber notfalls auch noch, an das Control darin, welches direkt den Fokus besitzt GetForegroundWindow GetWindowThreadProcessId GetWindowText GetWindowModuleFileName GetGUIThreadInfo uvm. |
AW: Software gesucht, die Fokus-Klau findet
sorry hatte hathors Code falsch interpretiert
schaut gut aus, der Code |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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