Что нового

[Мышь, клавиатура] Как заставить скрипт работать, только после нажатия определенной клавиши.

ZED

Новичок
Сообщения
7
Репутация
0
Cкрипт сразу начинает работать и это создает проблемы. Нужно сделать так, что бы он ждал нажатия клавиши pause и только после этого включался. Вот скрипт
Код:
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{m}", "Terminate")
While 1
Send("{o}") 
Sleep(1000) 
WEnd

Func TogglePause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
    WEnd
EndFunc

Func Terminate()
    Exit 0
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Автор
Z

ZED

Новичок
Сообщения
7
Репутация
0
Поправил (моя первая тема, извиняйте).
 

Ksaan

Знающий
Сообщения
207
Репутация
15
ZED

Код:
Global $Paused = False

HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{m}", "Terminate")

While 1
    If $Paused = True then 
       Send("{o}") 
       Sleep(1000)
   
    EndIf
WEnd

Func TogglePause() 
    $Paused = True
EndFunc 

Func Terminate()
    Exit 
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ZED,
Код:
Global $fWork

HotKeySet('1', '_Work_Pause')
HotKeySet('{Esc}', '_Exit')
While 1
	If $fWork Then ConsoleWrite('Send(''{o}'')' & @LF);Send('{o}')
	Sleep(1000)
WEnd

Func _Work_Pause()
	$fWork = Not $fWork
EndFunc   ;==>_Work_Pause

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
Z

ZED

Новичок
Сообщения
7
Репутация
0
Ksaan, спасибо за скрипт. Он ждет нажатия клавиши для запуска, но теперь больше не останавливается. Вернее не ставится на паузу. Именно с этой проблемой я и столкнулся ранее. Что вынудило обратится за помощью.


Добавлено:
Сообщение автоматически объединено:

madmasles, и вам спасибо за ответ, но скрипт не работает (ошибок не выдает, просто ничего не делает). Учитывая что вы модератор со стажем подскажите, в чем может быть дело ?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ZED [?]
ошибок не выдает, просто ничего не делает
Нажимайте поочередно на клавишу 1 и смотрите, что пишет в консоли. Esc - выход.
 

Ksaan

Знающий
Сообщения
207
Репутация
15
ZED
Он ждет нажатия клавиши для запуска, но теперь больше не останавливается. Вернее не ставится на паузу.
А сразу уточнить не мог? тут не вангуют.

Код:
Global $Paused = True

HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{m}", "Terminate");

While 1
  If Not $Paused Then
     Send("{o}") 
       Sleep(1000)
  Else
    Sleep(1)
  EndIf
WEnd


Func TogglePause()
  $Paused = Not $Paused
EndFunc

Func Terminate()
    Exit 
EndFunc
 
Автор
Z

ZED

Новичок
Сообщения
7
Репутация
0
Хоть ответ и немного в грубой форме, но вы написали все верно. За это вам жирный плюс.
 
Верх