procedure TForm1.Button1Click(Sender: TObject);
var
szText: array[0..254] of char;
hCurrentWindow :hwnd;
r:trect ;
point:tpoint;
begin
hCurrentWindow := GetWindow(Handle,GW_HWNDFIRST);
memo1.Clear;
while hCurrentWindow <> 0 do
begin
if GetWindowText(hCurrentWindow ,@szText,255) > 0 then
if pos('Form111', PChar(@szText))<>0 then //这里指定某一窗口,可能有多个
begin
memo1.lines.Add(PChar(@szText));
ShowWindow(hCurrentWindow,SW_SHOWNORMAL);//恢复最小化的窗口,如果窗口最小化,无法成功发送鼠标事件
// 必要时还可以用到下面:
//ShowWindow(hCurrentWindow, SW_RESTORE);//恢复窗口
// ShowWindow(hCurrentWindow, SW_MINIMIZE);//最小化窗口
SetForegroundWindow(hCurrentWindow);//设置窗口为当前窗口
GetWindowRect(hCurrentWindow,r);//得到窗口的左上角坐标
getcursorpos(point); //获取鼠标原来的位置
setcursorpos(r.Left+120,r.Top+60); //设置鼠标在窗口的位置 ,即需要点的地方
//前台模拟鼠标按下
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //鼠标左键按下
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); //鼠标左键按下
//后台模拟鼠标按下
SendMessage(hCurrentWindow, WM_LBUTTONDOWN, MK_LBUTTON, MakeLong(493,401));
//后台模拟鼠标按下
SendMessage(hCurrentWindow, WM_LBUTTONUP, MK_LBUTTON, MakeLong(493,401));
setcursorpos(point.x,point.y); //恢复鼠标原来的位置
end;
hCurrentWindow := GetWindow(hCurrentWindow,GW_HWNDNEXT);
end;
end;
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.060239791870117 seconds