Einzelnen Beitrag anzeigen

Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#9

Re: Text in Eingabefeld beliebiger Anwendungen ersetzen?

  Alt 11. Feb 2005, 03:18
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;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat