找回密码
 加入
搜索
查看: 5582|回复: 13

[AU3基础] fileinstall 涵数解压问题

 火.. [复制链接]
发表于 2010-8-20 18:07:12 | 显示全部楼层 |阅读模式
本帖最后由 lhy6456210 于 2010-8-20 21:01 编辑

我要用fileinstall 命令 包含很多的.exe文件,,这些文件在解压时一定会浪费一定的时间,难否在fileinstall 文件之前加入命令:  实现在解压前(我看到很多程序,在运行时都会弹出一个小对话框,提示正在解压文件并且有完成百比的数字再跳),就是想实现这个效果。

是不是没有看懂我表达的意思?我上张图:


刚刚我记了一下时间,把这些文件解压到临时文件夹用了40秒钟,我想实现的效果就是在解压的时候,有解压的进度条或者完成百分比之类的提示;

因为刚刚发了贴被管理员关了,说是标题模糊|违规,因为自己表大能力很差,自己的内容不知道要用什么标题才算不违规,如果这次这个标题再违规,麻烦帮我弄一个标题,谢谢!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-8-20 18:50:15 | 显示全部楼层
问题是什么时候解压,
什么时候用,什么时候解压,用不到指定的EXE文件时就不用解压
发表于 2010-8-20 20:52:43 | 显示全部楼层
你可以在脚本启动时加一界面提示等待

在解压完成后,即脚本正常运行前提示等待结束

FileInstall如果不覆盖已存在的文件,应该用时不长吧
发表于 2010-8-20 21:37:30 | 显示全部楼层
简单进度条

这个值 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, "解压文件", "解压完成!")

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-8-20 21:54:16 | 显示全部楼层
LZ的 FileInstall 参数错误,源文件不能使用变量,编译通不过的…
这么大的文件,不用包含进去吧,建个文件夹不好吗,还好管理点。只要编译那个安装脚本就行了。
 楼主| 发表于 2010-8-20 22:10:00 | 显示全部楼层
回复 4# lixiaolong


    谢谢!!!
 楼主| 发表于 2010-8-20 22:11:04 | 显示全部楼层
回复 5# afan


    文件夹不好管理啊,编译后,只有一个文件
发表于 2010-8-20 22:21:12 | 显示全部楼层
大文件考虑用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变量,储存 单一文件,全局文件 解压进度。

评分

参与人数 1金钱 +30 贡献 +2 收起 理由
afan + 30 + 2

查看全部评分

发表于 2010-8-22 00:12:30 | 显示全部楼层
觉得文件多的,还是打包吧。。
发表于 2010-8-22 10:49:50 | 显示全部楼层
谢谢了,对进度条又多了解了。
发表于 2010-8-22 18:39:35 | 显示全部楼层
学习了
发表于 2010-8-22 19:28:36 | 显示全部楼层
大文件还是 建立个文件夹比较好吧 。
 楼主| 发表于 2010-8-24 12:38:44 | 显示全部楼层
先谢谢了,还是决定采用4楼的,简单,因为是新手,8楼太复杂,不好理解
发表于 2010-8-24 12:55:19 | 显示全部楼层
(#cs迷之聲=========================================)

假如你的問題得到解決.請發貼人,編輯主題.把分類改為[已解決]


(#ce迷之聲=========================================)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-24 01:56 , Processed in 0.105260 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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