1 (изменено: ivan.parchomienko, 2018-02-23 11:45:45)

Тема: AHK: Пропуск задержки sleep при нажатии заданной клавиши

Как реализовать пропуск задержки sleep при нажатии заданной клавиши ?
вот что есть loop

{
sleep, 120000
send,{sc38}{sc14D}{sc1C}{sc150}{sc1C}{sc1C}
sleep,600000
send,{sc38}{sc14D}{sc1C}{sc150}{sc150}{sc1C}
sleep,50000
send,{sc38}{sc14D}{sc1C}{sc150}{sc150}{sc150}{sc150}{sc1C}
sleep,2000 
send,Model{sc1C}
break
}

нужно что бы в случае если программа быстрее чем там заданно в Sleep загрузит фото то по нажатию определенной клавиши оно переставало ждать

2

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

Каждый Sleep разбить на части и в свою очередь организовать, как Loop, на каждом обороте проверяя клавишу.

3

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

KeyWait

4 (изменено: svoboden, 2018-03-01 04:09:05)

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

Pause.

5 (изменено: qqlexa, 2018-03-03 15:29:19)

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши


x:=0       ;//Переменная которая регулирует задержку
F1::  
if x=0 x+=1   ;// Если x = 0 присвоить для переменной - x, число 1. Иначе x-=1
else x-=1
return
F2::
Loop
{                       
if x=1 goto, sl    ;// Если ты нажимал F1 будет скип задержки, иначе задержка полсекунды 
else 
{
sleep 500
goto sl
}
sl:
send, {Enter}
return
F3::
reload

6 (изменено: svoboden, 2018-03-04 02:01:36)

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

qqlexa, а как работает ваш пример, у меня ошибку выдает? Если уж на то пошло, то здесь, чтобы пропустить команду sleep, может, отладка скрипта нужна.

7 (изменено: qqlexa, 2018-03-04 19:31:56)

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

Буду честен, написал этот код для того чтобы направить в правильное русло пользователя, а сам код не проверил, наверное сделал плохо..
Давайте более-менее подробнее разберём что я хотел написать на самом деле, так как научиться писать "красивые" скрипты, я ещё не научился!)


x:=0       ;// Переменная которая регулирует задержку
return
F1::        ;// Тоже самое, если x = 0 присвоить для переменной - x, число 1. Иначе x-=1
if x=0  ;// Если x = 0 пойти на метку s+, иначе s-
{
goto, s+   ;// Пойти на метку s+
}
goto s-     ;// Пойти на метку s-
return
NumPad1:: ;// Активация скрипта
if x=1         ;// Проверяет пропускать или задерживать скрипт
{
goto, sl   
}
sleep 2000
sl:
msgbox, test
return
s+:          ;// Метка которая присваивает переменной значение 1
x+=1
return
s-:         ;// Метка которая забирает у переменной значение 1
x-=1
return
F3::
reload

8

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

svoboden, Pause не останавливает выполнение уже исполняющейся команды.
qqlexa, намудрили больно.

ТС нужен пропуск Sleep по нажатию клавиши, все очень просто - заменяем все Sleep на KeyWait, не думал что придется расписывать конечно:

KeyWait F1, DT120
Send {sc38}{sc14D}{sc1C}{sc150}{sc1C}{sc1C}
KeyWait F1, DT600
Send {sc38}{sc14D}{sc1C}{sc150}{sc150}{sc1C}
KeyWait F1, DT50
Send {sc38}{sc14D}{sc1C}{sc150}{sc150}{sc150}{sc150}{sc1C}
KeyWait F1, DT2
Send Model{sc1C}

9 (изменено: svoboden, 2018-03-05 02:10:08)

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

stealzy, а кто сказал, что pause должен пропустить sleep?

^1::
send a
pause
send b
pause
send v
return

^2::
pause off
return

Я думаю, что нужно пропустить не sleep, а саму команду.

10

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

svoboden пишет:

а кто сказал, что pause должен пропустить sleep?

ivan.parchomienko пишет:

Как реализовать пропуск задержки sleep при нажатии заданной клавиши ?

Спецом для упоротого зануды, вечно придирающегося или дающего ответы не в тему .

11 (изменено: shahlik002, 2018-03-05 20:16:50)

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

Loop
{
	ToolTip % a_index 
	IfKeySleep("space","200","0") ; если клавиша пробел не нажата спать 200 миллисекунд
}
  
; Клавиша, Время сна (при совпадении), 1 - нажата\ 0 - отжата
IfKeySleep(Key,TimeToSleep,state=1) 
{
if GetKeyState(Key,"p")=state 
	sleep % TimeToSleep
}

Space::return
Esc::ExitApp

12 (изменено: shahlik002, 2018-03-05 21:13:45)

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

Кстати, если программа как-то графически реагирует на загрузку фото:


Loop
{
ImageSearch,,,0,0,% A_ScreenWidth, % A_ScreenHeight,Picture.png
; искать картинку Picture.png по всему экрану 
if errorlevel=0 ; если найдено
	break ;прервать цикл поиска
}

Можно и без клавиш обойтись.

13

Re: AHK: Пропуск задержки sleep при нажатии заданной клавиши

stealzy, не "не в тему", а свое виденье вопроса. Вот, например, если пользователь задавший вопрос ждет загрузки изображения и изображение может загрузиться раньше sleep, то почему, оно не может загрузиться позже? Не подумали?