Einzelnen Beitrag anzeigen

bayo

Registriert seit: 19. Aug 2003
Ort: ch
15 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Handle des Fensters, das den Fokus hat!

  Alt 19. Aug 2003, 13:15
Vielen Dank für eure Antworten!

Folgend ein Modell meines Problems:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    hFocusedWnd: HWND;
    procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
  end;

const
  FOCUSEDWND_HOTKEY = 101;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Handle, FOCUSEDWND_HOTKEY, MOD_CONTROL, Ord('N'));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnregisterHotKey(Handle, FOCUSEDWND_HOTKEY);
end;

procedure TForm1.WMHotKey(var Msg : TWMHotKey);
begin
  Case Msg.HotKey of
    FOCUSEDWND_HOTKEY: hFocusedWnd := GetFocus;
  end;
end;

end.
GetForegroundWindow gibt das Handle des vordersten Formulars zurück und nicht des Fensters, das effektiv den eingabefokus hat! GetFocus wäre schön die richtige funktion, sie funktioniert aber nur innerhalb des Threads, der sie aufruft! Der Ansatz von teebee hört sich daher gut an Werde hier noch ein feedback geben!

Grüsse Dominic
  Mit Zitat antworten Zitat