icer2 发表于 2011-5-24 21:33:39

公司ERP程序,四个选项控件ID相同,MouseClick无法点击 <已解决>

本帖最后由 icer2 于 2011-5-26 11:55 编辑

这个是我们公司的一个ERP程序,很怪。

标题: 易飞 ERP 系统客户端安装向导
类:YIFEI_SETUPGUID
控件类:TTabSheet

安装时有四个选项 选择安装什么版本.
可四个选项的控件ID均为 TTabSheet1
我用 MouseClick ("left",800, 585, 1, 20)
可以点击, 但是换了分辨率之后就不行了...
用了这个帖子里的方法也不行:
http://www.autoitx.com/forum.php?mod=viewthread&tid=24491&highlight=%CA%F3%B1%EA

请问,还有什么办法啊?

请各位帮帮忙 谢谢了。。



软件下载地址: http://u.115.com/file/aq2nhyev#

icer2 发表于 2011-5-24 21:34:21

有需要的话,我可以上传主程序和主程序的配置文件。。

麻烦各位了。。

icer2 发表于 2011-5-24 21:44:09

本帖最后由 icer2 于 2011-5-24 22:05 编辑

Run("C:\Documents and Settings\Administrator\桌面\erp\LeaderSetup.exe")
WinWaitActive("易飞 ERP 系统客户端安装向导","取消")
Opt("MouseCoordMode", 0)
MouseClick ( "left",300,400,1,3)

我看了http://www.autoitx.com/forum.php?mod=viewthread&tid=1623&highlight=qq%2B%2B2008
用这个方法是可以了.. 而且换分辨率之后也好了
可是总感觉 鼠标移动的话 不是很好, 有没有办法 可以像给控件发送点击的好点办法吗?


补充一下:我发现我用ControlClick("易飞 ERP 系统客户端安装向导","取消","TTabSheet1","Left",1,110,297)
可以点击到下面的按钮..但是 点击的都是第一个按钮每个按钮之间坐标相差40
我把左边改为 297改为210-380 之间 全都可以..但全是 第一个..郁闷...

骗子 发表于 2011-5-24 21:45:10

http://www.autoitx.com/forum.php?mod=viewthread&tid=17882&extra=&page=1
用这个帖子里的软件,里面的
举个用 ControlClick 点击无具体控件ID的简单例子。比如说你要打开一个文件夹,或者桌面的某个快捷方式(当然这里不准使用Run或ShellExecute方式),如何操作?用 MouseClick 可以,不过,鼠标移过去了,影响用户其它工作,且需要在桌面可见的情况下。用 ControlClick 操作?那些图标并无具体控件 ID ,怎么点击?当然就要用到 ControlClick 后面的控件坐标参数了。
以下为双击桌面第一个图标的例子。用探测器得到桌面标题为“Program Manager”, 控件类名为“SysListView321”,控件坐标为“36, 31”:(注意,这里是XPsp3的探测结果,Win7可能不同;桌面第一个图标的坐标也可能不同)

    Sleep(2000)

    ControlClick ('Program Manager', '', 'SysListView321', 'left', 2, 36, 31)

复制代码 高亮切换

结果就是,就算桌面不可见,仍可执行双击打开

papapa314 发表于 2011-5-24 21:47:55

null

这些控件都在一个TAB里面吗?貌似没见过同个TAB里面控件id一样的。controlclick有试过没?最好上传软件过来看看

icer2 发表于 2011-5-24 22:15:25

软件已经上传。

麻烦各位了。

http://u.115.com/file/aq2nhyev#

icer2 发表于 2011-5-24 22:20:03

回复 4# 骗子


试过了哦。

全是点击的第一个按钮..

不管怎么改鼠标位置也不行..

icer2 发表于 2011-5-24 22:20:50

回复 5# papapa314


应该是一个TAB吧..

软件已经上传了..麻烦看看。。 谢谢了。

shenrenba 发表于 2011-5-25 09:20:49

N长时间 没写过自动安装脚本了写着玩玩
Run(@ScriptDir & "\erp\Setup.exe")
WinWaitActive("", "")
$pos = WinGetPos("", "")
MouseClick("left", $pos + 368, $pos + 220)
WinWaitActive("", "")
$pos = WinGetPos("", "")
MouseClick("left", $pos + 315, $pos + 390)
MsgBox(0, "测试", "后面类推不写了")
Exit

骗子 发表于 2011-5-25 09:50:44

回复 7# icer2
$title = "易飞 ERP 系统客户端安装向导"
ControlClick($title, '', 'TTabSheet1', 'left', 1, 114, 212)
Sleep(1000)
ControlClick($title, '', 'TBitBtn3', 'left', 1)
Sleep(1000)


ControlClick($title, '', 'TTabSheet1', 'left', 1, 103, 253)
Sleep(1000)
ControlClick($title, '', 'TBitBtn3', 'left', 1)
Sleep(1000)

ControlClick($title, '', 'TTabSheet1', 'left', 1, 103, 292)
Sleep(1000)
ControlClick($title, '', 'TBitBtn3', 'left', 1)
Sleep(1000)

ControlClick($title, '', 'TTabSheet1', 'left', 1, 77, 333)
Sleep(1000)
ControlClick($title, '', 'TBitBtn3', 'left', 1)
Sleep(1000)我试了下,应该是没问题的吧?
是不是因为点击任何一个都会跳转的许可协议那导致你认为是点击的同一个东西?$title = "易飞 ERP 系统客户端安装向导"
WinActivate($title)
Opt("MouseCoordMode", 2)
MouseClick("left",336,285) ;这个坐标是相对于窗口的

icer2 发表于 2011-5-25 19:21:05

回复 10# 骗子


谢谢楼上的两位朋友, 我已经用了
Opt("MouseCoordMode", 0)
MouseClick ( "left",300,400,1,3)

可这是鼠标移动过去执行的..

有办法不移动鼠标 直接点击控件运行吗?

骗子 发表于 2011-5-25 21:26:25

想不移动鼠标可以用ControlClick($title, '', 'TTabSheet1', 'left', 1, 114, 212)

icer2 发表于 2011-5-25 22:10:44

回复 12# 骗子


额.. 上那个我也试过了。貌似还是点击不到第三个控件.

罢了,就用移动鼠标的吧.. 谢谢了。。。

骗子 发表于 2011-5-26 10:18:55

本帖最后由 骗子 于 2011-5-26 10:44 编辑

回复 13# icer2

那就将就的用吧,好像和鼠标移动上去字体变大有关系
页: [1]
查看完整版本: 公司ERP程序,四个选项控件ID相同,MouseClick无法点击 <已解决>