Что нового

Как принудительно закрыть GUI окно?

Vic_

Новичок
Сообщения
6
Репутация
0
Вот пример кода в котором создаётся окно, после работы с которым выполнение скрипта продолжается, НО оно не закрывается а висит на заднем плане всё время пока не закончится выполнение скрипта.
Как можно его принудительно уничтожить/закрыть/скрыть?
Код:
#include <WindowsConstants.au3>
#include <GUIConstants.au3>

Opt("GUIOnEventMode", 1)

$GUI1=GUICreate("Info",   145,70,-1, -1, BitOR($WS_CAPTION, $WS_SYSMENU), -1)
GUISetOnEvent($GUI_EVENT_CLOSE,"Close")
GUICtrlCreateLabel("***",      2,5,200,15)
GUISetState(@SW_SHOW, $GUI1)

Func Close()
  ;GUISetState(@SW_HIDE, $GUI1)
; посоветовали заменить на эту строчку, не помогло (
  GUIDelete($GUI1)
EndFunc

Sleep(5000)
MsgBox(0, "", "Продолжение программы...",1)
Sleep(1000)
MsgBox(0, "", "Продолжение программы...",1)
Sleep(1000)
MsgBox(0, "", "Продолжение программы...",1)
Exit
[autoit]
[br][br][SIZE=1][color=green][b]Добавлено: [time]1382603801[/time][/b][/color][/SIZE]
Извиняюсь забыл "/" в конце тега
[autoit]
#include <WindowsConstants.au3>
#include <GUIConstants.au3>

Opt("GUIOnEventMode", 1)

$GUI1=GUICreate("Info",   145,70,-1, -1, BitOR($WS_CAPTION, $WS_SYSMENU), -1)
GUISetOnEvent($GUI_EVENT_CLOSE,"Close")
GUICtrlCreateLabel("***",      2,5,200,15)
GUISetState(@SW_SHOW, $GUI1)

Func Close()
  GUISetState(@SW_HIDE, $GUI1)
EndFunc

Sleep(5000)
MsgBox(0, "", "Продолжение программы...",1)
Sleep(1000)
MsgBox(0, "", "Продолжение программы...",1)
Sleep(1000)
MsgBox(0, "", "Продолжение программы...",1)
Exit
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Vic_
так вы вызовите функцию которую создали, конечно не будет работать
Вот так хотя бы:
Код:
#include <WindowsConstants.au3>
#include <GUIConstants.au3>

Opt("GUIOnEventMode", 1)

$GUI1=GUICreate("Info",   145,70,-1, -1, BitOR($WS_CAPTION, $WS_SYSMENU), -1)
GUISetOnEvent($GUI_EVENT_CLOSE,"Close")
GUICtrlCreateLabel("***",      2,5,200,15)
GUISetState(@SW_SHOW, $GUI1)
GUIDelete($GUI1);Выведем из функции которую не вызывали, и все заработает
Sleep(5000)
MsgBox(0, "", "Продолжение программы...",1)
Sleep(1000)
MsgBox(0, "", "Продолжение программы...",1)
Sleep(1000)
MsgBox(0, "", "Продолжение программы...",1)
Exit
 
Автор
V

Vic_

Новичок
Сообщения
6
Репутация
0
Да уж, как иногда тупит собственный мозг ))) Спасибо!
 
Верх