|
本帖最后由 邪恶海盗 于 2013-2-8 17:46 编辑
如题,目的是将该主程序置于封装好的系统部署接口上,将软件置于其它介质上调用,这样对于软件包的更新和修改更方便一些...
尝试根据帮助折腾了一下,首先就发现一个问题,如何找到软件配置文件的路径?
用笨办法DriveGetDrive("all")返回磁盘数量,再用FileFindFirstFile ($var[$i] & "\new\1.ini")断定配置文件是否存在,这里又出现一个问题,如果发现两处配置文件,执行哪个,或者说指定执行先搜索到的该怎么写?
受Qinstall启发到的想法....
20130208更新:#Region AutoIt3Wrapper 预编译参数(常用参数)
#AutoIt3Wrapper_Icon=G:\脚本相关\图标\xehd.ico ;图标,支持EXE,DLL,ICO
#AutoIt3Wrapper_OutFile=SWAI.exe ;输出文件名
#AutoIt3Wrapper_OutFile_Type=exe ;文件类型
#AutoIt3Wrapper_Compression=9 ;压缩等级
#AutoIt3Wrapper_UseUPX=y ;使用压缩
#AutoIt3Wrapper_Res_Comment=Software Auto Install ;注释
#AutoIt3Wrapper_Res_Description=软件自动安装器;详细信息
#AutoIt3Wrapper_Res_Fileversion=0.1.0.2
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p ;自动更新版本
#AutoIt3Wrapper_Res_LegalCopyright=邪恶海盗;版权
#EndRegion AutoIt3Wrapper 预编译参数(常用参数)
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("SWAI V0.1", 400, 100, -1, -1, BitOR($WS_POPUP, $WS_GROUP, $WS_CLIPSIBLINGS))
$Lable1 = GUICtrlCreateLabel("软件自动安装器 V0.1开发版", 5, 5, 390, 15, $SS_CENTER)
GUICtrlSetColor(-1, 0x363636)
$Lable2 = GUICtrlCreateLabel("正在安装", 10, 35, 50, 15)
$Lable3 = GUICtrlCreateLabel("软件名称", 65, 35, 290, 15, $SS_CENTER)
$Lable4 = GUICtrlCreateLabel("[0/0]", 352, 35, 40, 15, $SS_CENTER)
$Lable5 = GUICtrlCreateLabel("安装进度", 10, 62, 50, 15)
$Lable5 = GUICtrlCreateLabel('按[ESC]退出', 15, 85, 150, 15)
GUICtrlSetColor(-1, 0x363636)
$Progress1 = GUICtrlCreateProgress(65, 60, 325, 15, $PBS_SMOOTH);进度条
$Lable6 = GUICtrlCreateLabel("By:邪恶海盗 www.hidao.org", 220, 85, 200, 15)
GUICtrlSetColor(-1, 0x363636)
GUISetState(@SW_SHOW)
Local $Drive = DriveGetDrive("all")
For $i = 1 To $Drive[0]
If FileExists($Drive[$i] & "\SWAI\SWAI.ini") Then
ExitLoop
EndIf
Next
Local $var = IniReadSectionNames($Drive[$i] & "\SWAI\SWAI.ini")
If @error Then
MsgBox(4096, "", "发生错误, 可能没有 INI 文件.")
Else
For $i1 = 1 To $var[0]
$Title = IniRead($Drive[$i] & "\SWAI\SWAI.ini", $var[$i1], "Title", "配置文件出错")
$Name = IniRead($Drive[$i] & "\SWAI\SWAI.ini", $var[$i1], "Name", "配置文件出错")
GUICtrlSetData($Lable3, $Title)
GUICtrlSetData($Lable4, "[" & $var[$i1] & "/" & $var[0] & "]")
GUICtrlSetData($Progress1, $var[$i1] / $var[0] * 100)
If IniRead($Drive[$i] & "\SWAI\SWAI.ini", $var[$i1], "Hide", "配置文件出错") = "1" Then
RunWait($Drive[$i] & "\SWAI" & $Name, @SW_HIDE)
Else
RunWait($Drive[$i] & "\SWAI" & $Name)
EndIf
Next
EndIf
请高人指导一下,看是否有执行效率和其它方面的问题,目前发现的问题是当配置文件不存在的时报错并卡死...
待解决的问题:
1.软件安装目录如何自定义?
2.如果程序是.7z等压缩包,可否自动执行自解压?
3.如何实现当软件安装后运行软件目录下的程序?
成品及配置文件: |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
|