h111666b 发表于 2023-8-8 18:40:40

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

本帖最后由 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, "(+)%") Then
                        GUICtrlSetData($hProgress, StringRegExpReplace($Output, ".*(+)%.*", "$1"))
                EndIf
      EndIf
WEnd

; 关闭GUI窗口
GUIDelete($hGUI)

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

bfgxp 发表于 2023-8-8 21:08:55

你的上个帖子用的wimlib吧,一个高手已经回复了详细的代码。仔细看看人家是怎么写的。

bfgxp 发表于 2023-8-8 21:44:31


$acent= StringRegExp($Output, "\d+(?=%)",3)
If Not @error Then GUICtrlSetData($hProgress,$acent)

关键部分,未测试,有问题再说

h111666b 发表于 2023-8-8 22:28:07

本帖最后由 h111666b 于 2023-8-8 22:29 编辑

测试了下,楼上代码进度条能实时显示了,但是还有个小问题,进度条显示到90%左右,直接跳到100%,进度条最后10%被跳过
加入百分比测试,到了92%后直接跳到100%

h111666b 发表于 2023-8-8 23:26:13

找到问题了,使用批处理测试也是一样的问题,是imagex的问题,三楼正解,感谢!

bfgxp 发表于 2023-8-9 04:36:58

h111666b 发表于 2023-8-8 23:26
找到问题了,使用批处理测试也是一样的问题,是imagex的问题,三楼正解,感谢!

你测试的wim镜像太小了就会出现跳数字的现象。
页: [1]
查看完整版本: [已解决]进度条只会重复运行10%,实在搞不定,求助!