aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 22492|回复: 20

怎么取这个软件的控件信息?

  [复制链接]

40

主题

519

回帖

3015

积分

新手入门

超级初学者

积分
3015
发表于 2011-2-11 09:27:26 | 显示全部楼层 |阅读模式
意外发现WinSpy对TinyUmbrella一点反应都没,抓不到任何控件。是怎么回事呢?
这样的软件有办法取控件信息吗?

这是软件官方网站,绿色的,不是病毒木马
http://thefirmwareumbrella.blogspot.com/
国内无法访问google博客的直接用下面的地址下载
http://cache.firmwareumbrella.com/downloads/tinyumbrella-4.21.07.exe

拜托大家出点主意。

0

主题

12

回帖

72

积分

一级会员

积分
72
发表于 2011-2-11 11:46:50 | 显示全部楼层
抓取不到呢,这是以为他不创建子控件的类,而直接在父窗口实现,这样就抓取的就是父窗口的了!
如解决方法二楼说的

1

主题

36

回帖

194

积分

一级会员

积分
194
发表于 2011-2-11 12:26:35 | 显示全部楼层
回复 fantasynew 的帖子

模拟鼠标是否可以有等待窗体激活呢,如果有的话,应该不太怕外界干扰吧。

40

主题

519

回帖

3015

积分

新手入门

超级初学者

积分
3015
 楼主| 发表于 2011-2-11 12:38:27 | 显示全部楼层
回复 ywq111 的帖子

就是窗体激活了,而我在玩RPS游戏,怎么不会干扰呢?最早的按键时代做的挂机脚本,运行起来连对话都无法正常输入。

点评

用控件相对点击的话,我想应该不怕干扰了吧。。。  发表于 2011-2-11 12:42
***有controlClick,可以相对点击,只是是自己不会还是有时候不好用;不知道快手有没有,如果有类似功能的话,我想用控件的相对点击,或者也可以。  发表于 2011-2-11 12:41

1

主题

36

回帖

194

积分

一级会员

积分
194
发表于 2011-2-11 12:49:39 | 显示全部楼层
回复 fantasynew 的帖子

这个软件做什么用途的?你需要实现什么功能?

40

主题

519

回帖

3015

积分

新手入门

超级初学者

积分
3015
 楼主| 发表于 2011-2-11 12:58:24 | 显示全部楼层
回复 ywq111 的帖子

这里找不到控件,相对坐标点击也和分辨率窗口大小有关。
这个软件是刷苹果的必备工具,因为经常要帮朋友刷手机,电话一打就是几个钟头还搞不定,所以能做个傻瓜化的让它自动完成就好了。

点评

相对坐标点击,也和分辨率有关吗?  发表于 2011-2-11 13:04

40

主题

519

回帖

3015

积分

新手入门

超级初学者

积分
3015
 楼主| 发表于 2011-2-11 13:14:02 | 显示全部楼层
回复 ywq111 的帖子

aardio有类似controlclick的命令,没记错的话该是winex.mouse.click(hwnd,x,y)。
相对坐标点击,也和分辨率有关吗?

以前用AHK做的外挂辅助,才发现相对坐标点击也不可靠,窗口大小如果发生改变,脚本无法正常工作。如果能用controlclick,也就没必要用坐标了,一般的控件不需要坐标点击即可。可是这里取不到控件,这是问题所在。对父窗口用winex.mouse.click的话,不同电脑上窗口大小无法保证。

点评

窗体大小会变化?这个还不知道呢。。。我以为不会变化,毕竟不是web窗体。  发表于 2011-2-11 13:36
我也是刚学,有不少地方不懂。正在试着用快手实现,在查看快手的标准库  发表于 2011-2-11 13:20
应用程序的窗体大小应该是固定的吧。相对坐标如何不可靠?窗体大小不是固定的吗?  发表于 2011-2-11 13:19

1

主题

36

回帖

194

积分

一级会员

积分
194
发表于 2011-2-11 13:38:52 | 显示全部楼层
回复 fantasynew 的帖子

winex.mouse.click,这个和类似ControlClick?是不是类似MouseClick?

点评

算两者合二为一吧,快手里把后台鼠标点击归到winex.mouse库下  发表于 2011-2-11 14:07

1

主题

36

回帖

194

积分

一级会员

积分
194
发表于 2011-2-11 13:41:59 | 显示全部楼层
本帖最后由 ywq111 于 2011-2-11 13:44 编辑

回复 fantasynew 的帖子

import win
import winex
var parent,ctrl,theadId,processId=winex.findExists("TinyUmbrella v4.21.07","Start TSS Server")
win.msgbox(parent,
"aardio")这个操作怎么返回的是null呢?还不会用aardio。。。




看来aardio还得好好学才是,aardio的调用winapi功能,看起来真不错。

33

主题

497

回帖

3294

积分

荣誉会员

积分
3294
发表于 2011-2-11 13:48:45 | 显示全部楼层
看了一下,这个软件是Java写的。界面库为了跨平台,应该是没有调用系统提供的API来创建控件,而是采用了自行绘制的方式。
操作起来比较麻烦,可以试试 winex.mouse.click 以及 win.getClientRect,利用它的算法算出控件的位置再点击。
如果只是读取一些信息的话,不妨试试内存读取。

点评

真棒: 5.0
真棒: 5
超版也来了哈, 请教一下,算法算出控件位置?不能直接用工具找到相对位置吗?我不知道怎么算,呵呵  发表于 2011-2-11 14:09

12

主题

646

回帖

4023

积分

荣誉会员

子非魚、安知魚之樂

积分
4023
发表于 2011-2-11 14:18:09 | 显示全部楼层
还要装JAVA 虚拟机 我汗...

点评

jav_a打不出来,变*号了,哈哈。虚拟_机也是,奇怪了。。。  发表于 2011-2-11 14:38
我咋看它是个exe文件,超版要不说,我还不知道是***的,不知道要不要安装***。。。毕竟是exe的。  发表于 2011-2-11 14:37

40

主题

519

回帖

3015

积分

新手入门

超级初学者

积分
3015
 楼主| 发表于 2011-2-11 14:20:17 | 显示全部楼层
回复 ywq111 的帖子

你没选对函数,下面这样就能找到窗口句柄
import win
import winex
hwnd =winex.find(
"SunAwtFrame","TinyUmbrella v4.21.07")
win.msgbox(hwnd,
"aardio")

注意看智能提示里面提示了每个位置所需的参数以及返回值

点评

同意: 5.0
同意: 5
不过现在会用了,哈哈。多谢。  发表于 2011-2-11 14:35
只能提示貌似不是很好用,我直接看的库里面的代码。  发表于 2011-2-11 14:35

40

主题

519

回帖

3015

积分

新手入门

超级初学者

积分
3015
 楼主| 发表于 2011-2-11 14:33:09 | 显示全部楼层
回复 lujjjh 的帖子

谢谢超版,起码搞明白了这个软件是怎么回事。

117

主题

1103

回帖

6572

积分

六级会员

积分
6572
发表于 2011-2-11 14:54:37 | 显示全部楼层
回复 ywq111 的帖子

可以截取位图  自己算

都是依像素为单位的

1

主题

36

回帖

194

积分

一级会员

积分
194
发表于 2011-2-11 14:55:24 | 显示全部楼层
本帖最后由 ywq111 于 2011-2-11 14:55 编辑

回复 落伍者 的帖子

具体是那个函数,我想了解下。或者有没有相关的帖子。我先搜索下看看

117

主题

1103

回帖

6572

积分

六级会员

积分
6572
发表于 2011-2-11 14:59:12 | 显示全部楼层
回复 ywq111 的帖子

mouse 内的函数 都是  依屏幕分辨率 来说的
1024*768   就是 把你的 显示器 分成宽 1024  高 768 个单位
这个单位 叫做像素

超版 说的也就是 算出  控件在  屏幕上的位置 用后台鼠标进行点击

另外  读取内存 兴许是一个很棒的方法

1

主题

36

回帖

194

积分

一级会员

积分
194
发表于 2011-2-11 15:06:50 | 显示全部楼层
本帖最后由 ywq111 于 2011-2-11 15:12 编辑

回复 落伍者 的帖子

我测试了一下,只要分辨率不是太低,那个mouse的相对点击还是有效的。在800×600的分辨率下就虽然按钮看不到了,点击就没有效了。。。分辨率高的情况,也是可以的。。。
是否有必要一定是算呢?

点评

你不算 怎么知道点什么位置? 你点的那个 坐标 就是已经 算过了 /ch  发表于 2011-2-11 15:22

75

主题

767

回帖

5045

积分

六级会员

The only one

积分
5045
发表于 2011-2-11 17:38:31 | 显示全部楼层
回复 lujjjh 的帖子

希望版主能举个读内存的方法获取信息的例子,如:通过读取内存,获取不是标准控件的文本信息!

点评

同意: 5.0
同意: 5
超版给个例子就好了  发表于 2011-2-12 07:08

4

主题

101

回帖

593

积分

荣誉会员

积分
593
发表于 2011-2-11 23:22:03 | 显示全部楼层
可以利用WinSpy截取鼠标点击消息,从而得到控件的相对坐标
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-10-4 20:31 , Processed in 0.073930 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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