Hallo Leute,
ich sitze nun seit ewigkeiten vor einen Problem und weiß nicht wie ich es lösen kann.
Es dreht sich um folgendes:
Ich rufe ein Prozess aus der Commandozeile auf:
und dann hatte ich vor für die Laufzeit des Prozesses ein GUI zu öffnen. Genauer gesagt ein Progressbar-GuI
der Code sieht so aus:
Func progressbar()
$ProgressGui = GUICreate("", 200, 32, -1, -1, BitOR($WS_SIZEBOX, $WS_POPUP, $WS_VISIBLE, $DS_SETFOREGROUND), BitOR($WS_EX_STATICEDGE, $WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
WinSetTrans($ProgressGui, "", 200)
GUISetBkColor(0x000000, $ProgressGui)
$ProgressLabel = GUICtrlCreateLabel("", 45, 3, 120, 18)
GUICtrlSetColor($ProgressLabel, 0xFFFFFF);Progress Marquee + Controls
$PMarquee = _ProgressCreate(1, 20, 200, 40,0x00FF00,0x00FF00,0x111111,0x111111)
_ProgressSetText($PMarquee, "")
_ProgressSetImages($PMarquee, "D:\Dokumente\Dateien von Andreas\AutoIt3\prgimgs\marquee.jpg", "D:\Dokumente\Dateien von Andreas\AutoIt3\prgimgs\bg.jpg")
_ProgressRefresh($PMarquee)
_ProgressMarquee($PMarquee, 2, 0)
GUISetState()
while 1
Sleep(100)
Wend
EndFunc
Alles anzeigen
Jetzte ist es aber so, dass das Gui bzw. die Progressbar nicht einwandfrei läuft wenn ich die dortige While-Schleife entferne. das Nächste Problem ist das das GUI nicht beendet wird, wenn der aufgerufene Prozess beendet ist. Das Überprüfe ich wie folgt:
Meines Wissens nach müssten hier ja auch mehrere GUI's geöffnet werden?!?! Aber ist immer nur eine. *versteh ich nicht*
Ich habs auch schon mit if schleifen versucht, in dem ich abgefragt habe ob der Handle für den prozess 0 oder ungleich 0 ist, aber es gab keine änderung.
Kann mir jemand ein Tip geben? wie ich einen Close an das GUI schicken kann sobald der Process beendet ist?
thx
Calimero