Zitat von
FriFra:
Wäre es nicht irgendwie möglich geziehlt das Control zu bekommen, welches gerade den Focus hat?
Doch natürlich. Das ist kein Problem.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
AppHWnd: HWND;
ThreadId: DWORD;
FocusHWnd: HWND;
begin
FocusHWnd := GetFocus;
if not IsWindow(FocusHWnd) then
begin
AppHWnd := GetForegroundWindow;
if AppHWnd <> Self.Handle then
begin
ThreadId := GetWindowThreadProcessId(AppHWnd, nil);
if ThreadId <> 0 then
if AttachThreadInput(GetCurrentThreadId, ThreadId, True) then
begin
FocusHWnd := GetFocus;
AttachThreadInput(GetCurrentThreadId, ThreadId, False);
end;
end;
end;
ListBox1.ItemIndex := ListBox1.Items.Add('Das Fensterhandle $' + IntToHex(FocusHWnd, 8) + ' hat den Fokus');
end;