请教一个关于"vmware 8.0 自动安装脚本"其中遇到的问题
本帖最后由 Ycxw2008 于 2011-9-28 14:24 编辑一套软件基本都做好了,就差这个了.还望高手指教下
基本都是下面几个命令
Sleep(time)
WinWaitActive("VMware Workstation Setup","")
Send ("Key")
现在遇到的问题是
Send("点击后开始安装中了")安装需要3分钟,
Sleep("12000")设2分钟的话
WinWaitActive("VMware Workstation Setup","")
没安装完,脚本就结束了,因为标题都是同样的,没有文本信息,
这一步该怎么才能准确的等安装完才按执行其他的操作呢
勉强就差这一步,还望高手指点指点,当学习:)
窗口信息工具 都是底下的信息>>>> 窗口 <<<<
标题: VMware Workstation Setup
类名: #32770
坐标: 469, 200
大小: 503, 383
样式: 0x94C008CC
扩展样式:0x00050101
句柄: 0x00510910
>>>> 控件信息 <<<<
类名:
接口:
类别名:
名称:
高级模式(类):
ID:
文本:
坐标:
大小:
控件点击坐标:
样式:
扩展样式:
句柄:
>>>> 鼠标信息 <<<<
坐标: 666, 210
光标 ID: 0
颜色: 0x91C9EE
>>>> 状态栏信息 <<<<
>>>> 工具栏信息 <<<<
>>>> 可见文本 <<<<
>>>> 隐藏文本 <<<<
我说一个不太好的方法,
类名为Internet Explorer_Server1,应该可以这样...
使用
$oIE = _IEAttach("VMware Workstation Setup", "Embedded")
然后就可以像ie操作一样了 回复 2# suiyefeng
兄弟,好人做到底呗,稍微再给点信息,我都不知道怎么搜索.{:face (229):} 回复 3# Ycxw2008
你有没有使用过ie操作???
应该很好弄的啊,,,,看看IE相关的函数吧,比如
$oIE = _IEAttach("VMware Workstation Setup", "Embedded")
If IsObj($oIE) Then
MsgBox(0,0,_IEPropertyGet($oIE,"outertext"))
EndIf
应该可以的吧...自己试试吧..没测试,我也没把握, 试试这个方式。WinWait($title,"")
While1
If ControlGetHandle($title,"","Button7") Then exitloop
Sleep(1000)
WEnd
ControlClick($title,"","Button7","left",1)
vmware 8.0 也能实现自动安装脚本呀!我也想学学? 本帖最后由 zhangchongzhi 于 2011-10-1 11:35 编辑
呵呵,好喽。用的是判断第一个安装界面右边那片白色区域,用一个点的颜色值判断是否到安装界面了(用 pixelgetcolor 这个函数)。
第一步:先得到这个点的颜色值。
在第一个安装界面停住,用这个代码得到颜色值:#RequireAdmin
AutoItSetOption("pixelcoordmode",2) ;设置用于象素函数的坐标参照
AutoItSetOption("mousecoordmode",2)
$title="VMware Workstation Setup"
WinActivate($title,"")
WinWaitActive($title,"")
$handle = WinGetHandle($title,"")
MouseMove(204,262)
$color = PixelGetColor(204,262,$handle) ;白色颜色0xFFFFFF
MsgBox(0,"坐标颜色是:",$color)
;得到的值为16777215第二步:开始喽。
发个我弄的代码呵,没弄完,不想装喽,后边的你弄呗。不会我再看看。:#RequireAdmin
AutoItSetOption("pixelcoordmode",2) ;设置用于象素函数的坐标参照
AutoItSetOption("mousecoordmode",2)
Run("VMware-workstation-full-8.0.0-471780.exe")
$title="VMware Workstation Setup"
WinWaitActive($title,"")
$handle = WinGetHandle($title,"")
While 1
Sleep(3000)
$color = PixelGetColor(204,262,$handle) ;得到的颜色值为:16777215 白色0xFFFFFF.
If $color = 16777215 Then
ExitLoop
EndIf
WEnd
Sleep(2000)
MouseClick("left",344,335,1)
WinWaitActive($title,"")
Sleep(350)
MouseClick("left",50,127,1)
;试试类名
WinWaitActive("","")
Sleep(350)
MouseClick("left",351,338,1)
昨天下班弄到十一点半啊。眼睛都晕了。先前还想过 判断内存占用率 来看是否到了第一个安装界面,看了看,内存占用率一上去就不下来喽,不行了。昨天看了很多函数,收获不少。共同进步呵。 本帖最后由 Ycxw2008 于 2011-10-25 18:05 编辑
回复 7# zhangchongzhi
感谢你,说实在的,我目前懂大概思路了,但是函数一窍不通.现在开始慢慢消化你的成果,
真心感谢
http://www1.picturepush.com/photo/a/6826379/640/%E9%98%BF%E8%90%A8%E5%95%8A%E9%A3%9E/Pic-33.png 建议使用桌面坐标 模拟认为操作{:1_498:}
天然更安全
页:
[1]