以下是相关代码:
#Persistent
#SingleInstance, Force
#NoEnv
Gui, 2:New
Gui, 2: +Owner
Gui, 2:Color, 000000
Gui, 2:+hwndGUIaddress2
Gui, 2:Show, w500 h137, WinB
Gui, 2: +LastFound
WinSet, Transparent, 190
Gui, New
Gui, +Owner
Gui, Font, s8 cB4FFFF, Tahoma
Gui, Add, Text, x5 y5 w130, Filename:
;Gui, Add, Text, vProgress
Gui, Add, Text, x80 y5 w650 vFilename
Gui, Add, Text, y+1 w650 vProgress
Gui, Color, EEAA99
Gui, +LastFound
Gui, +hwndGUIAddress1
WinSet, TransColor, EEAA99 225
Gui, Show, w500 h137
OnMessage(0x03, "WM_MOVE")
Loop, D:\MOVIES_in\*.ts,0,1
{
title = %A_LoopFileFullPath%
LongPath = %A_LoopFileLongPath%
SplitPath LongPath, FileName, OutDir, OutExtension, OutNameNoExt, OutDrive
FileGetSize, Size_In, %A_LoopFileFullPath%
}
GuiControl, , Filename, %title%
Gosub Check_D_Drive
SetTimer, Check_D_Drive, 5000
return
Check_D_Drive:
{
Loop, D:\MOVIES_out\*.ts,0,1
{
FileGetSize, Size_Out, %A_LoopFileFullPath%
}
sleep 5000
Loop, D:\MOVIES_out\*.ts,0,1
{
FileGetSize, Size_Out2, %A_LoopFileFullPath%
}
complete:= Size_Out / Size_In
msgbox,,,%complete%,1
GuiControl,, Progress, %complete%
if ( complete > .98 )
{
if (%Size_Out% == %Size_Out2%)
{
SetTimer, Check_I_Drive, Off
msgbox Job is complete
}
}
}
return
;---------------------------------------------------------------------------------
WM_MOVE()
{
global GUIAddress1, global GUIAddress2
WinGetPos, mainX, mainY, Width, Height, Ahk_id %GUIAddress1%
WinMove, Ahk_id %GUIAddress2%,, %mainX%, %mainY%
WinSet, AlwaysOnTop,, Ahk_id %GUIAddress1%
}
Msgbox运行正常。我只是没有在我的GUI中看到更新。
答案 0 :(得分:0)
如果您将问题仅限于更新,则可以正常使用
Gui, New
Gui, +Owner
Gui, Font, s8 cB4FFFF, Tahoma
Gui, Add, Text, x5 y5 w130, Filename:
;Gui, Add, Text, vProgress
Gui, Add, Text, x80 y5 w650 vFilename
Gui, Add, Text, y+1 w650 vProgress
Gui, Show
loop, 100
{
Random, Size_Out , 1000000, 100000000
Random, Size_In , 1000000, 100000000
complete:= Size_Out / Size_In
GuiControl,, Filename, %A_Index%
GuiControl,, Progress, %complete%
Sleep, 1000
}
你的问题必须在其他地方。
使用MsgBox进行测试是有问题的,因为它 改变循环的焦点和运行时间。
在搜索问题而不是MsgBox时, 你可以尝试显示 使用工具提示检查完成的值 如果它真的在更新。
Tooltip, %complete%
您遇到问题的另一个原因是您运行两个 GUI 同时(不能从你的剧本判断,但你 在那里有第二个GUI。
如果这是您的问题并且工具提示显示正确的值, 看看这个example如何命名guis以及如何更新 特定的。