Delphi : GetWindowRect获取窗口矩形坐标,SetCursorPos设置鼠标位置_硬软兼得_新浪博客,硬软兼得,1)、GetWindowRect,用于取窗口矩形坐标。返回值类型:布尔型(LongBool)。执行成功返回真(True),否则返回假 (False);参数1类型:整数型(HWND),目标窗口的窗口句柄;参数2类型:坐标结构(RECT),目标窗口的坐标结构地址。在Windows SDK中的函数原型:
BOOL GetWindowRect(
HWND hWnd, // handle of window 参数1:目标窗口句柄
LPRECT lpRect // address of structure for window coordinates 参数2:窗口的坐标结构地址
); RECT定义:
typedef struct _RECT {
// rc
LONG left; //桌面窗口到目标窗口的左边距
LONG top; //桌面窗口到目标窗口的顶边距
LONG right; //桌面窗口到目标窗口的右边距
LONG bottom; //桌面窗口到目标窗口的底边距
} RECT;(2)、SetCursorPos,用于设置鼠标当前位置。返回值类型:布尔型(LongBool)。执行成功返回真(True),否则返回假 (False);参数1类型:整数型(Integer),水平位置X;参数2类型:整数型(Integer),垂直位置Y。在Windows SDK中的函数原型:
BOOL SetCursorPos(
int X, // horizontal position 参数1:水平位置
int Y // vertical position 参数2:垂直位置
); (3)、mouse_event,用于模拟鼠标动作。无返回值。参数1类型:整数型(Integer),鼠标动作标识;参数2类型:整数型 (Integer),鼠标动作的水平坐标X;参数3类型:整数型(Integer),鼠标动作的垂直坐标Y;参数4类型:整数型(Integer),鼠标 滚轮转动方向,若当前鼠标无滚轮动作,则取值为0;参数5在Windows SDK中的函数原型:
VOID mouse_event(
DWORD dwFlags, // flags specifying various motion/click variants 鼠标动作标识
DWORD dx, // horizontal mouse position or position change 鼠标动作的水平坐标
DWORD dy, // vertical mouse position or position change 鼠标动作垂直坐标
DWORD dwData, // amount of wheel movement 当鼠标动作标识为MOUSEEVENTF_WHEEL时,此参数为鼠标滚轮转动方向,正值表示滚轮向前旋转,远离用户;负值表示滚轮向后旋转,向用户。
DWORD dwExtraInfo // 32 bits of application-defined information 设定一个32位值用于取扩展信息
); 鼠标动作标识:
MOUSEEVENTF_MOVE = $0001; { mouse move 鼠标移动}
MOUSEEVENTF_LEFTDOWN = $0002; { left button down 左键按下}
MOUSEEVENTF_LEFTUP = $0004; { left button up 左键弹起}
MOUSEEVENTF_RIGHTDOWN = $0008; { right button down 右键按下}
MOUSEEVENTF_RIGHTUP = $0010; { right button up 右键弹起}
MOUSEEVENTF_MIDDLEDOWN = $0020; { middle button down 中间按下}
MOUSEEVENTF_MIDDLEUP = $0040; { middle button up 中键弹起}
MOUSEEVENTF_WHEEL = $0800; { wheel button rolled 滚轮移动}
MOUSEEVENTF_ABSOLUTE = $8000; { absolute move 绝对移动} 2、认识Delphi函数:IntToStr,用于整数数值转换为字符串。返回值类型:字符型(string),函数执行成功返回指定十进制数值的十进制字符串型;参数类型:整数型(Integer),目标数值的十进制数值。函数原型:
function IntToStr(
Value: Integer;//参数:要转换的十进制数值
): string;
源码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; type
TForm1 = class(TForm)
lb1: TLabel;
edt1: TEdit;
btn1: TButton;
lb2: TLabel;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
ck_hwnd:HWND;
ck_R:TRect;
begin
ck_hwnd:=FindWindow(‘SciCalc’,’计算器’);
edt1.Text := IntToHex(ck_hwnd,8);
GetWindowRect(ck_hwnd,ck_R);
lb2.Caption := IntToStr(ck_r.Left)+’,’+ IntToStr(ck_R.Top)+’/’+
IntToStr(ck_R.Right)+ ‘,’+ IntToStr(ck_R.Bottom );
//实现按下数字键8
SetCursorPos(350+ ck_R.Left ,150+ ck_R.Top ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN,350+ ck_R.Left,150+ ck_R.Top,0,0);
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTUP,350+ ck_R.Left,150+ ck_R.Top,0,0); end;
end.
Delphi : GetWindowRect获取窗口矩形坐标,SetCursorPos设置鼠标位置
相关推荐
- 员工考勤打卡时,如何避免非本人代替打卡? - 华为云开发者联盟 - 博客园
- Web Components从技术解析到生态应用个人心得指北 - zhoulujun - 博客园
- 【经典问题】mysql和redis数据一致性问题 - Scotyzh - 博客园
- vs出现错误,无法启动 Visual Studio。StreamJsonRpc.ConnectionLostException:在请求完成之前,与远程的JSON-RPC连接已丢失_客服专区-CSDN问答
- 【转】Chrome内核浏览器打开网页报 错误代码: ERR_TIMED_OUT - m_lm的个人空间 - OSCHINA - 中文开源技术交流社区
- ASP.NET Core WebApi配置跨域_asp.net core webapi 跨域-CSDN博客
- C# 怎么用OpenCVSharp4实现图片表格识别
- ChatGPT 本地部署及搭建_孟郎郎的博客-CSDN博客