[已解决]进度条只会重复运行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%左右,而且没有百分比同步显示,请教各位老大帮忙。
你的上个帖子用的wimlib吧,一个高手已经回复了详细的代码。仔细看看人家是怎么写的。
$acent= StringRegExp($Output, "\d+(?=%)",3)
If Not @error Then GUICtrlSetData($hProgress,$acent)
关键部分,未测试,有问题再说 本帖最后由 h111666b 于 2023-8-8 22:29 编辑
测试了下,楼上代码进度条能实时显示了,但是还有个小问题,进度条显示到90%左右,直接跳到100%,进度条最后10%被跳过
加入百分比测试,到了92%后直接跳到100%
找到问题了,使用批处理测试也是一样的问题,是imagex的问题,三楼正解,感谢! h111666b 发表于 2023-8-8 23:26
找到问题了,使用批处理测试也是一样的问题,是imagex的问题,三楼正解,感谢!
你测试的wim镜像太小了就会出现跳数字的现象。
页:
[1]