|
发表于 2010-5-22 09:53:17
|
显示全部楼层
吉林省白城市
这个是2008版的,别的QQ版本自已改吧,只是给你个例子,完全可以实现
[e]
.版本 2
.支持库 spec
.支持库 eAPI
.支持库 shell
.支持库 eMMedia
.程序集 窗口程序集1
.程序集变量 当前窗口信息, 窗口信息, , "0", 枚举出来的窗口信息
.程序集变量 当前窗口列表, 整数型, , "0", 枚举出来的窗口句柄列表
.程序集变量 窗口标题数组, 文本型, , "0"
.子程序 查找遥控主人窗口
.局部变量 aa, 文本型
.局部变量 hWnd
.局部变量 句柄
.局部变量 i, 整数型, 静态
.局部变量 句柄2, 整数型
.局部变量 句柄1, 整数型
.局部变量 句柄3, 整数型
编辑框1.内容 = “”
句柄1 = 窗口标题取句柄 (编辑框_QQ主人.内容)
句柄 = FindWindowExA (句柄1, 0, “RichEdit20A”, 0)
调试输出 (句柄1)
' 句柄2 = FindWindowExA (句柄1, 句柄2, “AfxWnd42 ”, 0)
' 句柄3 = FindWindowExA (句柄2, 0, “RichEdit20A”, 0)
' 判断循环尾 ()
置剪辑板文本 (“”)
SendMessageA (句柄, 177, 0, -1)
SendMessageA (句柄, 769, 0, 0)
SendMessageA (句柄, 177, 0, 0)
SendMessageA (编辑框1.取窗口句柄 (), 770, 0, 0)
.子程序 关闭QQ对话框
.局部变量 列表数组, 文本型, , "0"
.局部变量 局部_计次, 整数型
列表数组 = 取所有窗口列表 ()
.计次循环首 (取数组成员数 (列表数组), 局部_计次)
.如果真 (取窗口类名 (到整数 (列表数组 [局部_计次])) = “#32770”)
SendMessageA (到整数 (列表数组 [局部_计次]), 16, 0, 0)
.如果真结束
.计次循环尾 ()
.子程序 十进制到十六进制, 文本型, 公开
.参数 十进制转换数据, 长整数型
.局部变量 结果, 文本型
结果 = “ ” ' 取空白文本 ()
wvsprintf (结果, “%X”, 十进制转换数据)
返回 (结果)
.子程序 窗口标题取句柄, 整数型, 公开, 根据窗口标题的部分内容,取窗口句柄(返回第一个符合条件的窗口句柄,失败:返回-1)
.参数 标题, 文本型, , 窗口标题(可以为窗口部分标题)
.局部变量 临时窗口列表, 整数型, , "0"
.局部变量 循环变量, 整数型
枚举窗口 (临时窗口列表)
.计次循环首 (取数组成员数 (临时窗口列表), 循环变量)
.如果真 (寻找文本 (窗口取标题 (到数值 (临时窗口列表 [循环变量])), 标题, , 假) ≠ -1 且 窗口取类名 (到数值 (临时窗口列表 [循环变量])) ≠ “tooltips_class32”) ' 查找标题,且找到的不是系统中的"临时窗口句柄"
返回 (到数值 (临时窗口列表 [循环变量]))
.如果真结束
.计次循环尾 ()
返回 (-1)
.子程序 窗口取类名, 文本型, 公开, 取指定窗口句柄的窗口类名(返回窗口类名,失败返回0)
.参数 窗口句柄, 整数型, , 指定的窗口句柄
.局部变量 窗口类名, 文本型
窗口类名 = 取空白文本 (255)
GetClassName (窗口句柄, 窗口类名, 255)
返回 (窗口类名)
.子程序 窗口取标题, 文本型, 公开, 取指定窗口句柄的窗口标题(返回窗口标题,失败返回空文本)
.参数 窗口句柄, 整数型, , 指定的窗口句柄
.局部变量 窗口标题, 文本型
窗口标题 = 取空白文本 (255)
GetWindowTextA (窗口句柄, 窗口标题, 255)
返回 (窗口标题)
.子程序 枚举窗口, 整数型, 公开, 枚举所有窗口,返回窗口句柄数目,失败返回0
.参数 句柄数组, 整数型, 参考 可空 数组, 返回的所有窗口句柄数组
清除数组 (当前窗口列表)
清除数组 (句柄数组)
_枚举窗口 (&枚举窗口过程, 0)
句柄数组 = 当前窗口列表
返回 (取数组成员数 (当前窗口列表))
.子程序 枚举窗口过程, 逻辑型
.参数 hwnd, 整数型
.如果真 (hwnd ≠ 0)
加入成员 (当前窗口列表, hwnd)
返回 (真)
.如果真结束
返回 (假)
.子程序 __启动窗口_创建完毕
.子程序 查找主人窗口
.局部变量 临时变量, 整数型
.局部变量 音量, 整数型
.局部变量 迅雷地址, 文本型
清除数组 (窗口标题数组)
枚举系统所有窗口 ()
.计次循环首 (取数组成员数 (窗口标题数组), 临时变量)
.如果真 (寻找文本 (窗口标题数组 [临时变量], 编辑框_QQ主人.内容, , 真) ≠ -1 且 编辑框_QQ主人.内容 ≠ “”)
' ShowWindow (FindWindow (0, 窗口标题数组 [临时变量]), 1)
时钟1.时钟周期 = 0
查找遥控主人窗口 ()
.如果真 (寻找文本 (编辑框1.内容, “打开记事本”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
打开记事本 ()
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “关闭电脑”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
关闭系统 (#关机, 真)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “重启电脑”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
关闭系统 (#重启, 真)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “关闭显示器”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
SendMessageA (65535, 274, 61808, 2)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “开启屏幕保护”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
发送信息 (274, 61760, 0)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “最大音量”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
系统音量.打开 (4)
系统音量.取音量 (音量, 音量)
音量 = 系统音量.取最大音量 ()
系统音量.置音量 (音量, 音量)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “最小音量”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
系统音量.打开 (4)
系统音量.取音量 (音量, 音量)
音量 = 系统音量.取最小音量 ()
系统音量.置音量 (音量, 音量)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “音量大些”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
系统音量.打开 (4)
系统音量.取音量 (音量, 音量)
系统音量.置音量 (音量 + 10000, 音量 + 10000)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “音量小些”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
系统音量.打开 (4)
系统音量.取音量 (音量, 音量)
.如果真 (音量 > 10000)
系统音量.置音量 (音量 - 10000, 音量 - 10000)
.如果真结束
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “电脑静音”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
系统音量.打开 (4)
系统音量.置静音 (真)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “取消静音”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
系统音量.打开 (4)
系统音量.置静音 (假)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “打开迅雷”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
迅雷地址 = 取文本注册项 (#本地机器, “SOFTWARE\Thunder Network\ThunderOem\thunder_backwnd\Path”, )
执行 (#打开文件, 迅雷地址, , , )
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “鼠标左移动”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
移动鼠标 (取鼠标水平位置 () - 100, 取鼠标垂直位置 ())
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “鼠标右移动”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
移动鼠标 (取鼠标水平位置 () + 100, 取鼠标垂直位置 ())
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “鼠标上移动”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
移动鼠标 (取鼠标水平位置 (), 取鼠标垂直位置 () - 100)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “鼠标下移动”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
移动鼠标 (取鼠标水平位置 (), 取鼠标垂直位置 () + 100)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “鼠标左键点击”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
模拟鼠标点击 (取鼠标水平位置 (), 取鼠标垂直位置 (), 0)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “鼠标右键点击”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
模拟鼠标点击 (取鼠标水平位置 (), 取鼠标垂直位置 (), 2)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “鼠标左键双击”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
模拟鼠标点击 (取鼠标水平位置 (), 取鼠标垂直位置 (), 1)
.如果真结束
.如果真 (寻找文本 (编辑框1.内容, “鼠标右键双击”, , 假) > 0)
延时 (300)
关闭QQ对话框 ()
模拟鼠标点击 (取鼠标水平位置 (), 取鼠标垂直位置 (), 3)
.如果真结束
时钟1.时钟周期 = 2000
.如果真结束
编辑框1.内容 = “”
.计次循环尾 ()
.子程序 枚举系统所有窗口
.局部变量 RenHWND, 整数型
.局部变量 RetValue, 整数型
.局部变量 WinTextLength, 整数型
.局部变量 临时变量, 整数型
.局部变量 TempText, 字节型, , "256"
.局部变量 WinText, 字节型, , "256"
RenHWND = GetWindow (取窗口句柄 (), 0)
RetValue = GetWindowText (RenHWND, WinText, 256)
.如果真 (RetValue ≠ 0)
WinTextLength = GetWindowTextLength (RenHWND)
.如果真 (取文本左边 (到文本 (WinText), WinTextLength) ≠ 标题)
加入成员 (窗口标题数组, 到文本 (WinText))
.如果真结束
.如果真结束
RenHWND = GetWindow (RenHWND, #GW_HWNDNEXT)
RetValue = GetWindowText (RenHWND, WinText, 256)
.判断循环首 (RenHWND ≠ 0)
' 同一类型的程序只会弹出一个。在这里改
.变量循环首 (1, 取数组成员数 (窗口标题数组), 1, 临时变量)
.如果真 (到文本 (WinText) = 窗口标题数组 [临时变量])
WinText = TempText
跳出循环 ()
.如果真结束
.变量循环尾 ()
.如果真 (到文本 (WinText) ≠ “”)
加入成员 (窗口标题数组, 到文本 (WinText))
.如果真结束
RenHWND = GetWindow (RenHWND, #GW_HWNDNEXT)
RetValue = GetWindowText (RenHWND, WinText, 256)
.判断循环尾 ()
.子程序 打开记事本
执行 (#打开文件, “notepad.exe”, , , )
.子程序 _时钟1_周期事件
查找主人窗口 ()
.子程序 _按钮2_被单击
时钟1.时钟周期 = 0
.子程序 _按钮1_被单击
时钟1.时钟周期 = 2000
[/e] |
|