fileinstall 涵数解压问题
本帖最后由 lhy6456210 于 2010-8-20 21:01 编辑我要用fileinstall 命令 包含很多的.exe文件,,这些文件在解压时一定会浪费一定的时间,难否在fileinstall 文件之前加入命令:实现在解压前(我看到很多程序,在运行时都会弹出一个小对话框,提示正在解压文件并且有完成百比的数字再跳),就是想实现这个效果。
是不是没有看懂我表达的意思?我上张图:
刚刚我记了一下时间,把这些文件解压到临时文件夹用了40秒钟,我想实现的效果就是在解压的时候,有解压的进度条或者完成百分比之类的提示;
因为刚刚发了贴被管理员关了,说是标题模糊|违规,因为自己表大能力很差,自己的内容不知道要用什么标题才算不违规,如果这次这个标题再违规,麻烦帮我弄一个标题,谢谢!!! 问题是什么时候解压,
什么时候用,什么时候解压,用不到指定的EXE文件时就不用解压 你可以在脚本启动时加一界面提示等待
在解压完成后,即脚本正常运行前提示等待结束
FileInstall如果不覆盖已存在的文件,应该用时不长吧 简单进度条
这个值 0, 0 & " %" 看文件多少,自己改就行了ProgressOn("进度条", "正在解压", "0 %")
ProgressSet(0, 0 & " %")
FileInstall("1.exe",@TempDir & "\", 1)
ProgressSet(10, 10 & " %")
FileInstall("2.exe",@TempDir & "\", 1)
ProgressSet(20, 20 & " %")
FileInstall("3.exe",@TempDir & "\", 1)
ProgressSet(30, 30 & " %")
FileInstall("4.exe",@TempDir & "\", 1)
ProgressSet(40, 40 & " %")
FileInstall("5.exe",@TempDir & "\", 1)
ProgressSet(50, 50 & " %")
FileInstall("6.exe",@TempDir & "\", 1)
ProgressSet(60, 60 & " %")
FileInstall("7.exe",@TempDir & "\", 1)
ProgressSet(70, 70 & " %")
FileInstall("8.exe",@TempDir & "\", 1)
ProgressSet(80, 80 & " %")
FileInstall("9.exe",@TempDir & "\", 1)
ProgressSet(90, 90 & " %")
FileInstall("10.exe",@TempDir & "\", 1)
ProgressSet(100, 100 & " %")
FileInstall("11.exe",@TempDir & "\", 1)
ProgressOff()
MsgBox(0, "解压文件", "解压完成!") LZ的 FileInstall 参数错误,源文件不能使用变量,编译通不过的…
这么大的文件,不用包含进去吧,建个文件夹不好吗,还好管理点。只要编译那个安装脚本就行了。 回复 4# lixiaolong
谢谢!!! 回复 5# afan
文件夹不好管理啊,编译后,只有一个文件 大文件考虑用Resource.Au3的UDF,效果就不必说了。
参考_ResourceSaveToFile函数可以写出非常精确的解压过程。Local $ResStruct, $ResSize, $FileHandle
$ResStruct = _ResourceGetAsBytes($ResName, $ResType, $ResLang)
If @error Then Return SetError(1, 0, 0)
$ResSize = DllStructGetSize($ResStruct)
If $CreatePath Then $CreatePath = 8 ; mode 8 = Create directory structure if it doesn't exist
$FileHandle = FileOpen($FileName, 2+16+$CreatePath)
If @error Then Return SetError(2, 0, 0)
FileWrite($FileHandle, DllStructGetData($ResStruct, 1))
If @error Then Return SetError(3, 0, 0)
FileClose($FileHandle)
If @error Then Return SetError(4, 0, 0)
Return $ResSize关键的就这三条.
$ResStruct = _ResourceGetAsBytes($ResName, $ResType, $ResLang) ;这个不用说了,肯定要的
$ResSize = DllStructGetSize($ResStruct) ;考虑用循环获取全部文件大小
FileWrite($FileHandle, DllStructGetData($ResStruct, 1)) ;这个各声明一个Local,Global变量,储存 单一文件,全局文件 解压进度。 觉得文件多的,还是打包吧。。 谢谢了,对进度条又多了解了。 学习了
{:face (125):} 大文件还是 建立个文件夹比较好吧 。 先谢谢了,还是决定采用4楼的,简单,因为是新手,8楼太复杂,不好理解 (#cs迷之聲=========================================)
假如你的問題得到解決.請發貼人,編輯主題.把分類改為[已解決]
(#ce迷之聲=========================================)
页:
[1]