CCM 发表于 2011-3-10 12:32:24

安装软体加上判断(已解決)

本帖最后由 CCM 于 2011-3-11 08:52 编辑

搞了一个上午,还是做不出来,求助各位大俠

状况:
想弄个iTune的自动安装,有装过旧版本的Itune,会先出现移除的画面,这时候就移除旧的。如果没装过,就直接进行安装。

目前安装可以执行,但遇到移除时指令没作用,请问该怎么调整。

另外如果想改成,执行程序判断有无安装,有的话就移除,移除完毕后跟着安装,应该怎么改写?

谢谢了
if ProcessExists("outlook.exe") Then
        ProcessClose("outlook.exe")
EndIf

Run("iTunesSetup.exe")

If WinWaitActive("iTunes + QuickTime","iTunes 让您在 PC、iPhone、iPad 或 iPod 上轻松享受喜爱的音乐") Then
send("!n")
WinWaitActive("iTunes + QuickTime","请仔细阅读下面的许可协议")
Send("!a")
send("!n")
WinWaitActive("iTunes + QuickTime","请选择要安装 iTunes 档案的数据夹并选择安装选项。")
send("!i")
WinWaitActive("iTunes + QuickTime","已顺利将 iTunes 安装到您的计算机上。")
send("!f")
msgbox(0,"iTune自动安装程序","安装完毕,请按确定继续。")       
EndIf

If WinWaitActive("iTunes + QuickTime","请选择下方的一个选项。") Then
Send("!r")
WinWaitActive("iTunes + QuickTime","您要完全移除")
Send("!y")
WinWaitActive("iTunes + QuickTime","请选择下方的一个选项。")
send("!f")                        
EndIf

gzh888666 发表于 2011-3-10 12:59:36

台湾的朋友?“会先出现移除的画面,这时候就移除旧的”没看懂
是不是想写一个判断语句
参考IF 。。。。THEN eNDIF 语句

CCM 发表于 2011-3-10 13:39:09

就是如果已经安装过itune,执行安装程式时,会先出现询问移除软体的画面,这时候我要它先执行移除itune,然後再重新安装itune。因为如果用覆盖的,安装时间会非常久。

不过目前移除那边的程序都没反应,看别的讨论串做修改,觉得条件判断应该是没错,但就是不执行,所以来请教各位。

xyold1 发表于 2011-3-10 15:01:35

已经安装过itune,会在注册表里留下信息吧,安装的目录也能找到,先让脚本itune的执行卸载程式,再安装新的版本就好了吧,没用过itune

CCM 发表于 2011-3-11 08:38:38

按照顺序自然也行,但主要想练习有关if、else判断式的写法,昨天摸索出来的结果如下
if FileExists(@ProgramFilesDir & "\iTunes\iTunes.exe") Then
        run("iTunesSetup.exe")
        WinWaitActive("iTunes + QuickTime","更改或移除 iTunes")
        Send("!r")
        WinWaitActive("iTunes + QuickTime","您要完全移除")
        Send("!y")
        WinWaitActive("iTunes + QuickTime","安装程序已完成")
        send("!f")                        
        msgbox(0,"iTune自动安装程序","软件已移除,请重新执行安装程序。",3)

Else       
        run("iTunesSetup.exe")
        WinWaitActive("iTunes + QuickTime","欢迎使用 iTunes 安装程序")
        send("!n")
        WinWaitActive("iTunes + QuickTime","请仔细阅读下面的许可协议")
        Send("!a")
        send("!n")
        WinWaitActive("iTunes + QuickTime","请选择要安装 iTunes 档案的数据夹并选择安装选项。")
        send("!i")
        WinWaitActive("iTunes + QuickTime","已顺利将 iTunes 安装到您的计算机上。")
        send("!f")
        msgbox(0,"iTune自动安装程序","软件已安装完毕,请按确定结束。")
EndIf
Exit

骗子 发表于 2011-3-11 09:33:34

本帖最后由 骗子 于 2011-3-11 09:35 编辑

没做过自动安装,但是觉得按照楼主的要求可以这样写一个判断,就中文了
运行安装程序以后,判断出现的是安装窗口还是卸载窗口,如果是安装窗口的话直接安装,如果是卸载窗口的话就执行卸载,然后再运行一次安装程序,

run("iTunesSetup.exe") ;运行安装程序
if WinExists ( "移除窗口的标题" [, "移除窗口的标题"] );判断出现的窗口标题是不是卸载窗口
    执行卸载操作
    run("iTunesSetup.exe") ;运行安装程序
   执行安装操作
else
    执行安装操作
endif

CCM 发表于 2011-3-15 10:28:44

没做过自动安装,但是觉得按照楼主的要求可以这样写一个判断,就中文了
运行安装程序以后,判断出现的是安装 ...
骗子 发表于 2011-3-11 09:33 http://www.autoitx.com/images/common/back.gif

谢谢

这判断方法我之前有测试过,不过很奇怪,条件无法作用,所以最後我改判断档案是否存在。

CCM 发表于 2011-3-15 10:35:16

补充一下

if ... then
msgbox...
else
msgbox..

我一开始是这样加,判断if 跟 else 有无执行,结果都只有跑最上面。

骗子 发表于 2011-3-15 10:59:36

专门下载了iTunes试了一下,下面的判断应该没问题

run("iTunesSetup.exe") ;运行安装程序
If WinExists("iTunes + QuickTime","若要安装 iTunes 与 QuickTime(iTunes 必不可少的部分)") Then
    MsgBox(0, "", "你的系统里没有安装iTunes")
Else
        MsgBox(0, "", "系统已经安装过iTunes,请先执行卸载过程")
EndIf

页: [1]
查看完整版本: 安装软体加上判断(已解決)