找回密码
 加入
搜索
查看: 3331|回复: 8

[AU3基础] 安装软体加上判断(已解決)

  [复制链接]
发表于 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
发表于 2011-3-10 12:59:36 | 显示全部楼层
台湾的朋友?“会先出现移除的画面,这时候就移除旧的”没看懂
是不是想写一个判断语句
参考IF 。。。。THEN eNDIF 语句
 楼主| 发表于 2011-3-10 13:39:09 | 显示全部楼层
就是如果已经安装过itune,执行安装程式时,会先出现询问移除软体的画面,这时候我要它先执行移除itune,然後再重新安装itune。因为如果用覆盖的,安装时间会非常久。

不过目前移除那边的程序都没反应,看别的讨论串做修改,觉得条件判断应该是没错,但就是不执行,所以来请教各位。
发表于 2011-3-10 15:01:35 | 显示全部楼层
已经安装过itune,会在注册表里留下信息吧,安装的目录也能找到,先让脚本itune的执行卸载程式,再安装新的版本就好了吧,没用过itune
 楼主| 发表于 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

评分

参与人数 1金钱 +10 收起 理由
骗子 + 10 如果程序没安装在默认目录下应该会出现问题 ...

查看全部评分

发表于 2011-3-11 09:33:34 | 显示全部楼层
本帖最后由 骗子 于 2011-3-11 09:35 编辑

没做过自动安装,但是觉得按照楼主的要求可以这样写一个判断,就中文了
运行安装程序以后,判断出现的是安装窗口还是卸载窗口,如果是安装窗口的话直接安装,如果是卸载窗口的话就执行卸载,然后再运行一次安装程序,
run("iTunesSetup.exe") ;运行安装程序
if WinExists ( "移除窗口的标题" [, "移除窗口的标题"] )  ;判断出现的窗口标题是不是卸载窗口
    执行卸载操作
    run("iTunesSetup.exe") ;运行安装程序
   执行安装操作
else
    执行安装操作
endif
 楼主| 发表于 2011-3-15 10:28:44 | 显示全部楼层
没做过自动安装,但是觉得按照楼主的要求可以这样写一个判断,就中文了
运行安装程序以后,判断出现的是安装 ...
骗子 发表于 2011-3-11 09:33


谢谢

这判断方法我之前有测试过,不过很奇怪,条件无法作用,所以最後我改判断档案是否存在。
 楼主| 发表于 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

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-17 04:05 , Processed in 0.081595 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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