找回密码
 加入
搜索
查看: 636|回复: 5

[网络通信] [已解决]进度条只会重复运行10%,实在搞不定,求助!

[复制链接]
发表于 2023-8-8 18:40:40 | 显示全部楼层 |阅读模式
本帖最后由 h111666b 于 2023-8-8 23:27 编辑

老规矩,代码如下:

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

; 创建GUI窗口
$hGUI = GUICreate("解压文件", 300, 100)
$hProgress = GUICtrlCreateProgress(10, 30, 280, 20)
GUISetState(@SW_SHOW)

; 执行解压命令
$Pid = Run("imagex.exe /apply E:\WIN7.WIM 1 G:\888", "", @SW_HIDE, 0x8)

While ProcessExists($Pid)
        Sleep(50)
        $Output = StdoutRead($Pid)
        If Not @error Then
                If StringRegExp($Output, "([0-9]+)%") Then
                        GUICtrlSetData($hProgress, StringRegExpReplace($Output, ".*([0-9]+)%.*", "$1"))
                EndIf
        EndIf
WEnd

; 关闭GUI窗口
GUIDelete($hGUI)

      以上代码进度条只会重复运行10%左右,而且没有百分比同步显示,请教各位老大帮忙。

发表于 2023-8-8 21:08:55 | 显示全部楼层
你的上个帖子用的wimlib吧,一个高手已经回复了详细的代码。仔细看看人家是怎么写的。
发表于 2023-8-8 21:44:31 | 显示全部楼层
$acent= StringRegExp($Output, "\d+(?=%)",3)
If Not @error Then GUICtrlSetData($hProgress,$acent[UBound($acent)-1])
关键部分,未测试,有问题再说
 楼主| 发表于 2023-8-8 22:28:07 | 显示全部楼层
本帖最后由 h111666b 于 2023-8-8 22:29 编辑

测试了下,楼上代码进度条能实时显示了,但是还有个小问题,进度条显示到90%左右,直接跳到100%,进度条最后10%被跳过
加入百分比测试,到了92%后直接跳到100%
 楼主| 发表于 2023-8-8 23:26:13 | 显示全部楼层
找到问题了,使用批处理测试也是一样的问题,是imagex的问题,三楼正解,感谢!
发表于 2023-8-9 04:36:58 | 显示全部楼层
h111666b 发表于 2023-8-8 23:26
找到问题了,使用批处理测试也是一样的问题,是imagex的问题,三楼正解,感谢!

你测试的wim镜像太小了就会出现跳数字的现象。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 11:05 , Processed in 0.068782 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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