Ycxw2008 发表于 2011-9-28 14:19:20

请教一个关于"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

>>>> 状态栏信息 <<<<   

>>>> 工具栏信息 <<<<

>>>> 可见文本 <<<<


>>>> 隐藏文本 <<<<

suiyefeng 发表于 2011-9-28 22:37:44

我说一个不太好的方法,
类名为Internet Explorer_Server1,应该可以这样...
使用
$oIE = _IEAttach("VMware Workstation Setup", "Embedded")
然后就可以像ie操作一样了

Ycxw2008 发表于 2011-9-29 00:28:24

回复 2# suiyefeng

兄弟,好人做到底呗,稍微再给点信息,我都不知道怎么搜索.{:face (229):}

suiyefeng 发表于 2011-9-29 13:13:10

回复 3# Ycxw2008
   你有没有使用过ie操作???
应该很好弄的啊,,,,看看IE相关的函数吧,比如
$oIE = _IEAttach("VMware Workstation Setup", "Embedded")
If IsObj($oIE) Then
        MsgBox(0,0,_IEPropertyGet($oIE,"outertext"))
EndIf

应该可以的吧...自己试试吧..没测试,我也没把握,

zhangchongzhi 发表于 2011-9-29 15:43:06

试试这个方式。WinWait($title,"")
While1
      If ControlGetHandle($title,"","Button7") Then exitloop
      Sleep(1000)
WEnd
ControlClick($title,"","Button7","left",1)

zfyczyh 发表于 2011-9-29 17:47:53

vmware 8.0 也能实现自动安装脚本呀!我也想学学?

zhangchongzhi 发表于 2011-10-1 11:33:11

本帖最后由 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-1 12:57:04

本帖最后由 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

魔导 发表于 2011-10-14 17:34:59

建议使用桌面坐标 模拟认为操作{:1_498:}
天然更安全
页: [1]
查看完整版本: 请教一个关于"vmware 8.0 自动安装脚本"其中遇到的问题