Что нового

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

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,716
Командами эмуляции типа 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 сказал(а):
Нет, не должен.
Если выполняется условие (пиксель есть в указанном регионе) - кнопка отжимается, однако уже при следующем выполнении цикла кнопка снова нажимается.

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