Что нового

Удержание нажатой клавиши, пока не выполнится условие.

Can

Новичок
Сообщения
59
Репутация
1
Здравствуйте. Подскажите пожалуйста, как правильно написать скрипт, чтобы нажималась указанная клавиша, и была нажата до тех пор, пока не выполнится условие?

Что-то типа этого:

Код:
HotKeySet ( "{ESC}" ,"_Exit")

While 1 

Send("{р Down}")
PixelSearch( 100, 441, 880, 463, 0x84B400, 0, 1)      
If Not @error Then
Send("{р Up}")
 EndIf
WEnd

Func _Exit()
    Exit
EndFunc


Приведённый пример не работает.Заранее благодарю.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 713
Командами эмуляции типа Send() этого вряд ли получится добиться. Скорее всего, программа (игра?) требует физического удержания клавиши и ведет опрос с помощью GetAsyncKeyState(). Ищи альтернативные способы решения этой проблемы (если возможно).
 
Автор
C

Can

Новичок
Сообщения
59
Репутация
1
Yashied сказал(а):
Командами эмуляции типа Send() этого вряд ли получится добиться. Скорее всего, программа (игра?) требует физического удержания клавиши и ведет опрос с помощью GetAsyncKeyState(). Ищи альтернативные способы решения этой проблемы (если возможно).
Да нет, не требует физического вмешательства. Надо просто нажать кнопку на клавиатуре, а отпустить её не через заданное время, а при нахождении
пикселя, вот и всё.

Что-то похожее я видел с мышкой:http://autoit-script.ru/index.php/topic,198.0.html

Если я правильно понял, то с мышкой можно такое сделать, нанпример нажать левую клавишу,дальше выполняется условие, при котором потом можно отжать клавишу мышки,а вот как с клавиатурой сделать?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Попробуй так.

Код:
HotKeySet ( "{ESC}" ,"_Exit")

Send("{р Down}")
While 1 
PixelSearch( 100, 441, 880, 463, 0x84B400, 0, 1)      
If Not @error Then
    Send("{р Up}")
    ExitLoop
EndIf
WEnd

Func _Exit()
    Send("{р Up}")
    Exit
EndFunc
 
Автор
C

Can

Новичок
Сообщения
59
Репутация
1
Спасибо, правда не работает как надо.

Скажите пожалуйста, а вот мой первый скрипт в целом должен работать, или так изначально не делается?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Нет, не должен.
Если выполняется условие (пиксель есть в указанном регионе) - кнопка отжимается, однако уже при следующем выполнении цикла кнопка снова нажимается.
 
Автор
C

Can

Новичок
Сообщения
59
Репутация
1
SyDr сказал(а):
Нет, не должен.
Если выполняется условие (пиксель есть в указанном регионе) - кнопка отжимается, однако уже при следующем выполнении цикла кнопка снова нажимается.
Спасибо, вроде смутно разобрался, правда скорости реакции не хватает, чтобы моментально отпускалась кнопка.
 
Верх