请教如何先运行A窗口,再运行B窗口,等待B窗口出现时即关闭A窗口?
请教如何先运行A窗口,再运行B窗口,等待B窗口出现时即关闭A窗口?背景:我写的一个脚本,因为要释放文件,所以运行之后起码要10秒才会弹出主界面,这段时间脚本没有任何提示,让人误以为程序没有在执行。于是我想实现,运行脚本之后,先即时弹出一个窗口A,这个窗口没有边框,没有任何按钮,只显示“程序正在执行,请稍后。。。。”,然后等到弹出B窗口时,即时关闭A窗口而保留B窗口。我写了以下代码,但是每当关闭A窗口时,B窗口也被关闭。
$Title_A = "窗口A"
If WinExists($Title_A) Then Exit
Global $Form_A = GUICreate($Title_A)
GUISetState(@SW_SHOW)
$Title_B = "窗口B"
If WinExists($Title_B) Then Exit
Global $Form_B = GUICreate($Title_B, 360, 270)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
EndSwitch
If WinExists($Form_B) Then
WinActivate($Form_A )
WinClose($Form_A )
GUISwitch($Form_B)
EndIf
WEnd
请教各位,谢谢! SplashTextOn('', '程序正在执行,请稍候…', 300, 45, -1, -1, 1)
Sleep(3000) ;这里该干嘛干嘛~
SplashOff()
GUICreate('主窗口', 360, 270)
GUISetState()
While GUIGetMsg() <> -3
WEnd afan的方法就很好啊~! 谢谢楼上两位,我换了思路,成功了。既然不能关闭,那就隐藏它。
#include <WindowsConstants.au3>
Global $Form_A = GUICreate("",300, 100, -1, -1,BitOR($DS_MODALFRAME, $WS_POPUPWINDOW))
GUICtrlCreateLabel("程序正在努力加载,请稍后...... ", 40, 40, 200, 80)
GUISetState(@SW_SHOW)
$Title_B = "窗口B"
If WinExists($Title_B) Then Exit
Global $Form_B = GUICreate($Title_B, 360, 270)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
EndSwitch
If WinExists($Form_B) Then
GUISetState(@SW_HIDE,$Form_A)
EndIf
WEnd
其实楼主这个 还可以用 SplashImageOn 来创建一个闪屏 可以加载图片的样式等待后台各种操作
更美观 更个性更专业{:face (301):}
页:
[1]