Что нового

[Элементы GUI] Управление элементами GUI при паузе скрипта

Goldenx

Новичок
Сообщения
14
Репутация
0
Всем доброго вечера

Вот есть у нас стандартная пауза скрипта. Но когда активируешь паузу, невозможно управлять элементами, вплоть до закрытии окна

Код:
Func _PauseToggle()
	$iPaused = Not $iPaused
	While $iPaused
		Sleep(10)
	WEnd
EndFunc   ;==>_PauseToggle


Есть ли другая возможность поставить на паузу скрипт?
 

joiner

Модератор
Локальный модератор
Сообщения
3,573
Репутация
634
http://autoit-script.ru/index.php?topic=5724.0
http://autoit-script.ru/index.php?topic=4831.15
и еще куча тем, где обсуждался этот вопрос
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
Goldenx
Еще вариант:
Код:
#include <GUIConstantsEx.au3>

$Pause = 0

AdlibRegister('Pause', 50)

$hGUI = GUICreate('Pause')
$hPause = GUICtrlCreateButton('Pause', 8, 8)
GUISetState()

$i = 0
While 1
	TrayTip('Pause', "Counter is - " & $i, 0)
	$i += 1
WEnd

Func Pause()
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $hPause
			$Pause = Not $Pause
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch

	If $Pause <> 0 Then
		Sleep(50)
	EndIf
EndFunc
 
Автор
G

Goldenx

Новичок
Сообщения
14
Репутация
0
Z_Lenar

Интересный пример, а можно такое же сделать с горячими клавишами?
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
Код:
;Добавьте в начало
HotKeySet('{PAUSE}', 'Toggle')

;И это куда нибудь
Func Toggle()
    $Pause = Not $Pause
EndFunc
 
Автор
G

Goldenx

Новичок
Сообщения
14
Репутация
0
При таком примере $Pause все равно приходится закидывать в бесконечный цикл

Код:
$Pause = Not $Pause
While $Pause
       sleep(100)
    WEnd


Но такой вариант не подходит, отлична скрипт приостоновлен, но работать с окном я уже не могу.

Все примеры которые я нашел на форуме работают с кнопкой

Код:
GUISetAccelerators ()


Хоть и работает, но не подходит - нужно активное окно. Короче бился часа 3 как сделать, но так и не добился :'(
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
Goldenx
Что, куда закидывать? Мой пример вообще у вас работает?
 
Автор
G

Goldenx

Новичок
Сообщения
14
Репутация
0
Z_Lenar
Ваш пример работает с кнопкой, с горячей клавишей не работает
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
Так не работает?
Код:
#include <GUIConstantsEx.au3>

$Pause = 0

AdlibRegister('Pause', 50)
HotKeySet('{PAUSE}', 'Toggle')

$hGUI = GUICreate('Pause')
$hPause = GUICtrlCreateButton('Pause', 8, 8)
GUISetState()

$i = 0
While 1
    TrayTip('Pause', "Counter is - " & $i, 0)
    $i += 1
WEnd

Func Pause()
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $hPause
            $Pause = Not $Pause
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch

    If $Pause <> 0 Then
        Sleep(50)
    EndIf
EndFunc

Func Toggle()
	$Pause = Not $Pause
EndFunc
 
Верх