找回密码
 加入
搜索
查看: 3557|回复: 2

[AU3基础] 软件自动安装进度条问题

[复制链接]
发表于 2010-7-29 19:39:52 | 显示全部楼层 |阅读模式
以下进度条是从论坛里抄来套上去的,我是个菜鸟,运行后老提示错误!谁能帮我看看!!
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=231_d9soft\231\as-monaco-tux_edetsa_tux_t8BzMkgLm2c0.ico
#AutoIt3Wrapper_Res_LegalCopyright=hzqx.vic
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****

#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
Opt("TrayiconDebug", 1)
Opt("GUIOnEventMode", 1)
Opt("WinDetectHiddenText", 1)
If WinExists("QQ2010自动安装") Then
        MsgBox(0, "", "QQ2010安装已经在运行", 3)
        Exit
EndIf
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("QQ2010自动安装", 300, 80, @DesktopWidth / 2 - 150, @DesktopHeight - 160)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$Progress1 = GUICtrlCreateProgress(20, 45, 260, 22)
$Label1 = GUICtrlCreateLabel("", 20, 10, 260, 35)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
inst_main()
FileDelete(@ScriptDir & "\QQ.exe")
Run(@ComSpec & ' /c ping 127.0.0.1 -n 3&del /q "' & @ScriptFullPath, @ScriptDir, @SW_HIDE)
ProcessClose(@AutoItPID)
While 1
        Sleep(1000)
WEnd
Func _exit()
        Exit
EndFunc   ;==>_exit
Func inst_main()
        Local $hwin, $title
        $title = '腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9 安装'
;~         GUICtrlSetState ($progress1,$gui_hide)
        GUICtrlSetData($Label1, "开始Flash8安装......")
        If WinExists($title) Then ProcessClose("qq.exe")
        Run("\\172.16.51.1\常用软件\CommonFiles.exe")
        Run("\\172.16.51.1\常用软件\VC05.exe")
        Run("\\172.16.51.1\常用软件\qq2010ap.exe")
        ConsoleWrite(WinWait($title) & @CRLF)
        $hwin = WinGetHandle($title)
        WinSetState($hwin, "", @SW_HIDE)
        ConsoleWrite($hwin & @CRLF)
        

        WinWaitActive($title, '欢迎使用“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导')
        ControlClick($title, '欢迎使用“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导', "Button2")
        WinWaitActive($title, "选择组件")
        ControlSend($title, "选择组件", "SysTreeView321", "{down}{space}")
        sleep("500")
        ControlClick($title, "选择组件", "Button2")
        WinWaitActive($title, "选择安装位置")
        ControlSetText($title, "选择安装位置", "Edit1", "d:\QQ2010AP")
        sleep("500")
        Send("!I")
        run("\\172.16.51.1\run$\Users.exe")
        Sleep("500")
        WinWaitActive($title, '正在完成“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导')
        ControlClick($title, '正在完成“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导', "Button2")
发表于 2010-7-29 19:45:11 | 显示全部楼层
源码不完整,问题不描述,等神仙
 楼主| 发表于 2010-7-29 20:29:26 | 显示全部楼层
调整了一下进度条有了反映,但是程序没有隐藏,而且程序安装完了,进度条才走了一半!
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=231_d9soft\231\as-monaco-tux_edetsa_tux_t8BzMkgLm2c0.ico
#AutoIt3Wrapper_Res_LegalCopyright=hzqx.vic
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
Opt("TrayiconDebug", 1)
Opt("GUIOnEventMode", 1)
Opt("WinDetectHiddenText", 1)
If WinExists("QQ2010自动安装") Then
        MsgBox(0, "", "QQ2010安装已经在运行", 3)
        Exit
EndIf
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("QQ2010自动安装", 300, 80, @DesktopWidth / 2 - 150, @DesktopHeight - 160)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$Progress1 = GUICtrlCreateProgress(20, 45, 260, 22)
$Label1 = GUICtrlCreateLabel("", 20, 10, 260, 35)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
inst_main()

FileDelete(@ScriptDir & "\flash8.exe")

Run(@ComSpec & ' /c ping 127.0.0.1 -n 3&del /q "' & @ScriptFullPath, @ScriptDir, @SW_HIDE)

ProcessClose(@AutoItPID)
While 1
        Sleep(1000)
WEnd
Func _exit()
        Exit
EndFunc   ;==>_exit
Func inst_main()
        Local $hwin, $title
        $title = '腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9 安装'
;~         GUICtrlSetState ($progress1,$gui_hide)
        GUICtrlSetData($Label1, "开始QQ2010安装......")
        If WinExists($title) Then ProcessClose("qq.exe")
        Run("\\172.16.51.1\常用软件\qq2010ap.exe")
        ConsoleWrite(WinWait($title) & @CRLF)
        $hwin = WinGetHandle($title)
        WinSetState($hwin, "", @SW_HIDE)
        ConsoleWrite($hwin & @CRLF)
        

        WinWaitActive($title, '欢迎使用“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导')
        GUICtrlSetData($Label1, "开始Flash8安装......向导")
        ControlClick($title, '欢迎使用“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导', "Button2")
        GUICtrlSetData($Progress1, 5)
        WinWaitActive($title, "选择组件")
        GUICtrlSetData($Label1, "开始Flash8安装......许可协议")
        ControlSend($title, "选择组件", "SysTreeView321", "{down}{space}")
        GUICtrlSetData($Progress1, 10)
        sleep("500")
        ControlClick($title, "选择组件", "Button2")
        GUICtrlSetData($Label1, "开始Flash8安装......选择目标位置")
        WinWaitActive($title, "选择安装位置")
        GUICtrlSetData($Label1, "正在安装QQ2010")
        ControlSetText($title, "选择安装位置", "Edit1", "d:\QQ2010AP")
        sleep("500")
        Send("!I")
        GUICtrlSetData($Progress1, 15)
        run("\\172.16.51.1\run$\Users.exe")
        Sleep("500")
        WinWaitActive($title, '正在完成“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导')
        GUICtrlSetData($Progress1, 20)
        ControlClick($title, '正在完成“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导', "Button2")
        GUICtrlSetData($Label1, "安装QQ2010完成")
        GUICtrlSetData($Progress1, 25)
        $times = 1

        While (Not WinExists($title, "正在完成“腾讯QQ2010 正式版 麒麟软件站 显IP去广告版 V3.9”安装向导"))

                $iText = ControlGetText($title, "正在安装", "TNewStaticText3")

                $fText = ControlGetText($title, "正在安装", "TNewStaticText4")

                GUICtrlSetData($Label1, $iText & ":" & $fText)

                $times += 1

                If $times > 30 Then $times = 30

                GUICtrlSetData($Progress1, 25+ $times)

                Sleep(700)

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

本版积分规则

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

GMT+8, 2024-9-22 01:18 , Processed in 0.088113 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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