本帖最后由 mgchl 于 2015-1-7 10:56 编辑
不知为何写的这串代码开始正常运行,后来突然就无法使用了~~
请大侠看看错在哪,谢谢。#RequireAdmin
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=C:\WINDOWS\system32\SHELL32.dll|-15
#AutoIt3Wrapper_Outfile=PMS20(32).EXE
#AutoIt3Wrapper_Outfile_x64=PMS20(64).EXE
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
;安装前读取配置信息
Local $googlename = "Files\chrome_installer.exe"
Local $pmsname = "Files\PMS2.0_v1.0.14.11.1_全量.exe"
Select
Case @OSArch = 'X64' ;选择重新安装
Local $os = 'Framework64'
Local $osprofile = 'C:\Program Files (x86)'
Case @OSArch = 'X86' ;选择重新安装
Local $os = 'Framework'
Local $osprofile = 'C:\Program Files'
EndSelect
If FileExists("C:\PMS2.0") Then
;找到PMS2.0的安装目录,提示是否重新安装,或者不安装;
Local $cho1 = MsgBox(4, "安装PMS2.0", "PMS2.0已经安装在你的主机内,是否重装?")
Select
Case $cho1 = 6 ;选择重新安装
ProcessClose("SGGM.Framework.Base.Sample.exe");安装前先终止下进程中PMS2.0程序文件
Local $PMS2 = "YY";添加这句是为了不重复安装第二个软件
googelinstallA()
EndSelect
EndIf
Func googelinstallA();谷歌浏览器重新安装
If FileExists($osprofile & "\Chrome") Then;监测谷歌浏览器是否已经安装,和去顶是否需要重新安装
;找到谷歌浏览器的安装目录,提示是否重新安装,或者不安装;
Local $cho2 = MsgBox(4, "安装谷歌浏览器", "谷歌浏览器已经安装在你的主机内,是否重装?")
Select
Case $cho2 = 6 ;选择重新安装
ProcessClose("chrome.exe");安装前先终止下进程中谷歌浏览器程序文件
googelinstall()
EndSelect
Else
;没有找到谷歌浏览器,选择安装浏览器
googelinstall()
EndIf
If $PMS2 = 'YY' Then ;添加这句是为了不重复安装第二个软件
PMSlinstall()
EndIf
EndFunc ;==>googelinstallA
Func googelinstall();安装谷歌浏览器
Run($googlename)
WinWaitActive("Google Chrome 安装", "欢迎使用“Google Chrome”安装向导")
Send("!n")
WinWaitActive("Google Chrome 安装", "选择“Google Chrome”的安装文件夹。")
Send("!i")
WinWaitActive("Google Chrome 安装", "单击 [完成(F)] 关闭此向导。")
ControlClick("Google Chrome 安装", "运行Chrome浏览器", "[CLASS:Button; INSTANCE:4]")
ControlClick("Google Chrome 安装", "运行Chrome浏览器", "[CLASS:Button; INSTANCE:5]")
Send("!f")
EndFunc ;==>googelinstall
Func PMSlinstall();安装PMS2.0
If FileExists(@WindowsDir & "\Microsoft.NET" & $os & "\v4.0.30319") Then;监测谷歌浏览器是否已经安装,和去顶是否需要重新安装
;找到.Net40版本,使用 A 方式安装
PMSlinstallA()
Else
;没有找到.Net40版本,使用 B 方式安装
PMSlinstallB()
EndIf
EndFunc ;==>PMSlinstall
Func PMSlinstallA();已经安装.Net 4.0以上版本的安装流程
Run($pmsname)
WinWaitActive("设备(资产)运维精益管理系统 安装程序", "下一步")
Send("!n")
WinWaitActive("设备(资产)运维精益管理系统 安装程序", "国家电网公司 版权所有")
Send("!n")
WinWaitActive("设备(资产)运维精益管理系统 安装程序", "返回")
Send("!n")
WinWaitActive("设备(资产)运维精益管理系统 安装程序", "更改(&H)...")
Send("!n")
WinWaitActive("设备(资产)运维精益管理系统 安装程序", "只对当前用户安装快捷方式")
Send("!n")
WinWaitActive("设备(资产)运维精益管理系统 安装程序", "取消(&C)")
Send("!n")
WinWaitActive("设备(资产)运维精益管理系统 安装程序", "完成(&F)")
Send("!f")
PMSUP();安装好PMS2.0后,替换两个配置文件
EndFunc ;==>PMSlinstallA
Func PMSlinstallB();没有安装.Net 4.0以上版本的安装流程
Run($pmsname)
WinWaitActive("Technology Required", "Setup has detected")
ControlClick("Technology Required", "Setup has detected", "[CLASS:Button; INSTANCE:1]")
WinWaitActive("Microsoft .NET Framework 4 安装程序", "我已阅读并接受许可条款")
Send("!a""!i")
WinWaitActive("Microsoft .NET Framework 4 安装程序", "已安装 .NET Framework 4。")
Send("!f")
PMSlinstallA();安装完.Net 4.0后运行 PMSlinstallA
EndFunc ;==>PMSlinstallB
Func PMSUP();安装好PMS2.0后,替换两个配置文件
If FileExists("C:\PMS2.0\Update.ini") Then FileDelete("C:\PMS2.0\Update.ini");找到需要替换的文件,进行删除
If FileExists("C:\PMS2.0\SGGM.Framework.Base.Sample.exe.config") Then FileDelete("C:\PMS2.0\SGGM.Framework.Base.Sample.exe.config");找到需要替换的文件,进行删除
FileCopy("Files\Update.ini", "C:\PMS2.0");复制替换的文件
FileCopy("Files\SGGM.Framework.Base.Sample.exe.config", "C:\PMS2.0");复制替换的文件
EndFunc ;==>PMSUP
问题已经找到,红色字部分代码
If FileExists("C:\PMS2.0") Then
;找到PMS2.0的安装目录,提示是否重新安装,或者不安装;
Local $cho1 = MsgBox(4, "安装PMS2.0", "PMS2.0已经安装在你的主机内,是否重装?")
Select
Case $cho1 = 6 ;选择重新安装
ProcessClose("SGGM.Framework.Base.Sample.exe");安装前先终止下进程中PMS2.0程序文件
Local $PMS2 = "YY";添加这句是为了不重复安装第二个软件
googelinstallA()
EndSelect
else
googelinstallA()
EndIf |