|
|
|
|
||
教学课题:SPY++ 结合易语言简单应用之代码优化
教学要点:用易语言编程坏境,以计算器为例模拟鼠标输入QQ号:854487915
教学步骤:1、简化“查找窗口_”函数
2、简化“模拟鼠标操作_”函数
教学源码:
窗口程序集1:
.版本 2
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.局部变量 窗口坐标结构, 矩形坐标结构
.局部变量 窗口句柄, 整数型
窗口句柄 = 标取句柄 (, “计算器”) ' 取计算器窗口句柄
编辑框1.内容 = 到文本 (窗口句柄) ' 显示窗口句柄
.如果 (窗口句柄 ≠ 0)
取窗口矩形坐标 (窗口句柄, 窗口坐标结构) ' 取计算器矩形坐标
' 按下数字8
置鼠标坐标 (350 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边)
鼠标左键按下 (350 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 350 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边, 0, 0)
' 按下数字5
置鼠标坐标 (350 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, 350 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边, 0, 0)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 350 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边, 0, 0)
' 按下数字4
置鼠标坐标 (308 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, 308 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边, 0, 0)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 308 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边, 0, 0)
' 按下数字4
置鼠标坐标 (308 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, 308 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边, 0, 0)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 308 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边, 0, 0)
' 按下数字8
置鼠标坐标 (350 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, 350 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边, 0, 0)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 350 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边, 0, 0)
' 按下数字7
置鼠标坐标 (306 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, 306 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边, 0, 0)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 306 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边, 0, 0)
' 按下数字9
置鼠标坐标 (387 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, 387 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边, 0, 0)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 387 + 窗口坐标结构.左边, 150 + 窗口坐标结构.顶边, 0, 0)
' 按下数字1
置鼠标坐标 (308 + 窗口坐标结构.左边, 210 + 窗口坐标结构.顶边)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, 308 + 窗口坐标结构.左边, 210 + 窗口坐标结构.顶边, 0, 0)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 308 + 窗口坐标结构.左边, 210 + 窗口坐标结构.顶边, 0, 0)
' 按下数字5
置鼠标坐标 (350 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, 350 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边, 0, 0)
延时 (500)
模拟鼠标操作_ (#MOUSEEVENTF_LEFTUP, 350 + 窗口坐标结构.左边, 180 + 窗口坐标结构.顶边, 0, 0)
.否则
.如果结束
DLL命令定义表:
.版本 2
.DLL命令 查找窗口_, 整数型, "user32", "FindWindowA"
.参数 窗口类名, 文本型
.参数 窗口标题, 文本型
.DLL命令 置鼠标坐标, 整数型, "user32", "SetCursorPos"
.参数 鼠标坐标X, 整数型
.参数 鼠标坐标Y, 整数型
.DLL命令 取窗口矩形坐标, 整数型, "user32", "GetWindowRect"
.参数 窗口句柄, 整数型
.参数 坐标结构, 矩形坐标结构
.DLL命令 模拟鼠标操作_, , "user32", "mouse_event"
.参数 操作标志, 整数型
.参数 目的坐标x, 整数型
.参数 目的坐标y, 整数型
.参数 数据信息, 整数型, , cButtons
.参数 扩展数据信息, 整数型, , dwExtraInfo
程序集——API简化:
.版本 2
.程序集 API简化
.子程序 类取句柄, 整数型, , 以窗口类名取窗口句柄
.参数 窗口类名, 文本型
.参数 窗口标题, 文本型, 可空
.局部变量 句柄, 整数型
' 句柄 = 查找窗口_ (窗口类名, 窗口标题)
' 返回 (句柄)
返回 (查找窗口_ (窗口类名, 窗口标题))
.子程序 标取句柄, 整数型, , 以窗口标题取窗口句柄
.参数 窗口类名, 文本型, 可空
.参数 窗口标题, 文本型
返回 (查找窗口_ (窗口类名, 窗口标题))
.子程序 鼠标左键按下
.局部变量 x, 整数型
.局部变量 y, 整数型
模拟鼠标操作_ (#MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
自定义数据类型表:
.版本 2
.数据类型 矩形坐标结构, , RECT
.成员 左边, 整数型
.成员 顶边, 整数型
.成员 右边, 整数型
.成员 底边, 整数型
常量数据表:
.版本 2
.常量 MOUSEEVENTF_LEFTDOWN, "2"
.常量 MOUSEEVENTF_LEFTUP, "4"