怎么样获得鼠标点击的窗口的句柄?(30分)

  • 主题发起人 主题发起人 wein
  • 开始时间 开始时间
W

wein

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么样获得鼠标点击的窗口的句柄?
 
看来要使用hook了,我有一个MOUSE HOOK的控件,要不要?
 
WinAPI函数 function WindowFromPoint(Point: TPoint): HWND;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
p: TPoint;
wclss: array [0..255] of char;
state: integer;
wnd: HWND;
begin
p.x := x;
p.y := y;
p := ClientToScreen(p);
wnd := WindowFromPoint(p);
state := GetClassName(wnd,wclss,254);
ShowMessage(format('当前窗口: %X; WindowClass: %s',[wnd,wclass]);
end;
 
用getmousepos得到当前鼠标的位置,再用api求得句柄。
 
先用wh_mouse挡住wm_lbuttonclick
再用getmousepos获得鼠标位置
讲此位置传给Windowfrompoint即可获得点击窗口的句柄
 
先得鼠标位置,再WindowFromPoint得句柄
 
多人接受答案了。
 
后退
顶部