Код из мануала, только отредактировал функцию "ShowMessage", чтобы сообщение в консоль выдавала.
Проблема в том, что если нажать и держать Shift-Alt-d, то в консоль будет без перерыва выводится сообщение, можно ли сделать так, чтобы функция срабатывала только по однократному нажатию комбинации клавиш, а далее скрипт ждал пока пользователь клавишу отпустит и снова сработает только при следующем нажатии клавиши.
Одно нажатие, один вызов функции без залипания.
Проблема в том, что если нажать и держать Shift-Alt-d, то в консоль будет без перерыва выводится сообщение, можно ли сделать так, чтобы функция срабатывала только по однократному нажатию комбинации клавиш, а далее скрипт ждал пока пользователь клавишу отпустит и снова сработает только при следующем нажатии клавиши.
Одно нажатие, один вызов функции без залипания.
Код:
; Нажимайте Esc, чтобы завершить скрипт, и Pause/Break, чтобы приостановить
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ; Shift-Alt-d для вызова сообщения
MsgBox(4096, 'Сообщение', 'Нажмите горячую клавишу Pause/Break,' & @CRLF & 'чтобы увидеть как это работает.')
;=== Тело программы должно находится здесь ;===
While 1
Sleep(100)
WEnd
;===
Func TogglePause()
$Paused = Not $Paused
While $Paused
Sleep(100)
ToolTip('Скрипт приостановлен')
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
Func ShowMessage()
;~ MsgBox(4096, "", "Это сообщение.")
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Shift-Alt-d' & @CRLF)
EndFunc