开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5149|回复: 18
收起左侧

[已解决] 能否取出QQ消息框里的消息?

 关闭 [复制链接]
结帖率:92% (11/12)
发表于 2010-5-22 09:53:16 | 显示全部楼层 |阅读模式   河南省开封市
50精币
想做个程序取出QQ对话框里的对话,然后根据内容来执行一些命令,例如:如果消息里有“关机”消息时电脑就关机。
其实也就是想用手机来简单的实现远程控制电脑。
我用精易小助手取不到 啊、不知道有没有什么办法可以取出的?

最佳答案

查看完整内容

这个是2008版的,别的QQ版本自已改吧,只是给你个例子,完全可以实现 [e] .版本 2 .支持库 spec .支持库 eAPI .支持库 shell .支持库 eMMedia .程序集 窗口程序集1 .程序集变量 当前窗口信息, 窗口信息, , "0", 枚举出来的窗口信息 .程序集变量 当前窗口列表, 整数型, , "0", 枚举出来的窗口句柄列表 .程序集变量 窗口标题数组, 文本型, , "0" .子程序 查找遥控主人窗口 .局部变量 aa, 文本型 .局部变量 hWnd .局部变量 句柄 . ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
发表于 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]
回复

使用道具 举报

结帖率:80% (8/10)
发表于 2010-5-22 09:54:23 | 显示全部楼层   福建省泉州市
貌似不能行啊
回复

使用道具 举报

结帖率:92% (11/12)
 楼主| 发表于 2010-5-22 10:09:41 | 显示全部楼层   河南省开封市
回复 2# lnh1100


    如果QQ不行,那还有什么聊天工具可以同时电脑手机登陆的并且能够取出消息内容的工具?
回复

使用道具 举报

结帖率:80% (8/10)
发表于 2010-5-22 10:24:44 | 显示全部楼层   福建省泉州市
回复 3# wbin502


    不可能的!!
回复

使用道具 举报

结帖率:80% (8/10)
发表于 2010-5-22 10:26:09 | 显示全部楼层   福建省泉州市
免费手机短*+手机远程控制电脑
序列号:m2pr5i0c0x96

建立个人短*平台,赚取信息费。

免费手机短*+手机远程控制电脑

使用方法:先把m2psetuprar释放到你的硬盘中,然后点击m2p应用文件,先注册,然后登陆,你就可以免费的发手机短*了!

M2P是Mobile to PC(手机到个人电脑)的简称,是一个方便的手机到PC的通信工具,它可以将每一个手机和每台PC单独连接起来。手机是最常见的个人通信工具, PC是最常见的个人办公工具,当这两个与大家生活工作紧密相关的设备连接到一起时,将产生无数新奇的应用,给工作带来诸多方便,给生活带来许多乐趣从。手机发送短*就可以远程开机、关机、重启电脑、运行任何程序、打开MediaPlayer播放电影,发送短*就可以让电饭锅自己煮饭。

3.96正式版下载(for Win2000/XP/2003) 3.96正式版下载(for Win9X)

连接地址:http://www.m2p.com.cn/download.asp?no=m2pr5i0c0x96

序列号:m2pr5i0c0x96

M2P资费? 未注册用户不收取任何费用,可以免费发送5条短*;注册会员包月费用5元,首月免费。每月可以免费下发50条短消息,超出部分0.1元/条。

M2P是Mobile to PC(手机到个人电脑)的简称,是一个方便的手机到PC的通信工具,它可以将每一个手机和每台PC单独连接起来.启动以后可以接收和发送短*,并可以按预先设定的规则自动应答接收的短*.M2P能实现目前的短*网站整个技术部门日常做的工作.任何一个下载的M2P都可以让你做过去只有企业才能做的事情.
M2P是信息服务业的催化剂,它的直接价值就是极大的降低了信息传递的壁垒加快信息的流动性,使信息需求者用最简单的方式找到信息,让饱含知识和智慧的信息更容易的帮助需要它的人;它的间接价值是使知识和智慧更方便的,更容易的实现其价值,让它们的制造者获得收入.
M2P软件可以免费下载和注册,所有注册用户可以免费发送5条信息.当要使用某些功能时需要注册成为会员,包月5元,会员可以自由发送短*,通过软件回复手机短*全部免费!
取消会员资格编辑短* m2pqx 发送到 1510(移动用户)或 9510(联通用户)
回复

使用道具 举报

发表于 2010-5-22 10:47:24 | 显示全部楼层   吉林省白城市
用到的API函数

.版本 2

.DLL命令 GetWindowTextA, 整数型, , "GetWindowTextA"
    .参数 hwnd, 整数型
    .参数 lpString, 文本型
    .参数 cch, 整数型

.DLL命令 FindWindowExA, 整数型, "user32.dll", "FindWindowExA"
    .参数 parent, 整数型
    .参数 child, 整数型
    .参数 class, 文本型
    .参数 window, 整数型

.DLL命令 _枚举窗口, 逻辑型, , "EnumWindows"
    .参数 枚举过程, 子程序指针
    .参数 参数, 整数型

.DLL命令 GetClassName, 整数型, "user32.dll", "GetClassNameA", , 为指定的窗口取得类名 以字节数表示的类名长度;排除最后的空中止字符。零表示出错。会设置GetLastError
    .参数 句柄, 整数型, , 欲获得类名的那个窗口的句柄
    .参数 文本, 文本型, , 随同类名载入的缓冲区。预先至少必须分配nMaxCount+1个字符
    .参数 文本长度, 整数型, , 由lpClassName提供的缓冲区长度;

.DLL命令 wvsprintf, 整数型, "user32.dll", "wvsprintfA"
    .参数 lpstr, 文本型
    .参数 lpcstr, 文本型
    .参数 OptionalArguments, 整数型, 传址

.DLL命令 SendMessageA, 整数型, , "SendMessageA"
    .参数 hwnd, 整数型
    .参数 a, 整数型
    .参数 b, 整数型
    .参数 c, 整数型

.DLL命令 GetWindow, 整数型, , "GetWindow"
    .参数 hwnd, 整数型
    .参数 wCmd, 整数型

.DLL命令 GetWindowTextLength, 整数型, , "GetWindowTextLengthA"
    .参数 hwnd, 整数型

.DLL命令 FindWindow, 整数型, , "FindWindowA"
    .参数 lpClass, 整数型
    .参数 lpName, 文本型

.DLL命令 ShowWindow, , "user32.dll", "ShowWindow"
    .参数 A, 整数型
    .参数 B, 整数型

.DLL命令 GetWindowText, 整数型, , "GetWindowTextA"
    .参数 hwnd, 整数型
    .参数 lpString, 字节型, 数组
    .参数 cch, 整数型

.DLL命令 移动鼠标, , "user32", "SetCursorPos", 公开
    .参数 x, 整数型
    .参数 y, 整数型

自定义数据类型

.版本 2

.数据类型 窗口信息, 公开, 枚举窗口信息
    .成员 窗口句柄, 整数型, 传址
    .成员 进程ID, 整数型, 传址
    .成员 线程ID, 整数型, 传址
    .成员 窗口类名, 文本型
    .成员 窗口标题, 文本型
回复

使用道具 举报

结帖率:25% (1/4)
发表于 2010-5-22 17:58:19 | 显示全部楼层   福建省福州市
这个应该不难吧,楼上代码好长啊

再来个思路,时钟周期屏幕找图,发现关机,则模拟关机
回复

使用道具 举报

结帖率:92% (11/12)
 楼主| 发表于 2010-5-22 21:36:45 | 显示全部楼层   河南省开封市
回复 8# airpppp


    问题的关键在于怎么把“关机”两个字取出来啊。用小助手取不到。这段代码我还没来得及试呢。试过后看看是不是我要的。
回复

使用道具 举报

结帖率:25% (1/4)
发表于 2010-5-23 00:30:08 | 显示全部楼层   福建省福州市
回复 9# wbin502


    可以找图嘛!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表