...Handle und Klassenname an der aktuellen Cursorposition ermitteln?

Autor: Simon Grossenbacher
Homepage: http://www.swissdelphicenter.ch

Kategorie: System

type
  
TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure 
ShowHwndAndClassName(CrPos: TPoint);
  public

end
;

var
  
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
var
  
rPos: TPoint;
begin
  if 
Boolean(GetCursorPos(rPos)) then ShowHwndAndClassName(rPos);
end;

procedure TForm1.ShowHwndAndClassName(CrPos: TPoint);
var
  
hWnd: THandle;
  aName: array [0..255] of Char;
begin
  
hWnd := WindowFromPoint(CrPos);
  Label1.Caption := 'Handle :  ' + IntToStr(hWnd);

  if Boolean(GetClassName(hWnd, aName, 256)) then
    
Label2.Caption := 'ClassName :  ' + string(aName)
  else
    
Label2.Caption := 'ClassName :  not found';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  
Form1.FormStyle := fsStayOnTop;
  Timer1.Interval := 50;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base