Что нового

[Мышь, клавиатура] Удержание нажатой кнопки пока...

kcop

Новичок
Сообщения
3
Репутация
0
День добрый.

Есть ли у кого-то мысли, как реализовать удержание кнопки нажатой до тех пор, пока не произойдет какое-то изменение.

пока что реализовал функцию таким образом, но не совсем подходит, т.к. между нажатиями есть небольшая задержка.
Код:
       While 1
		if PixelGetColor(984,717) = 0xF6E603 Then
			Return
		EndIf
		ToolTip('Space sent...',0,0)
		Send("{SPACE}")
		Sleep(10)
	WEnd

есть ли вариант держать клавишу нажатой пока цвет не сменится?
убрать sleep не предалгайте, все равно нажатии будут раздельными :-[
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Вот так примерно, но это тоже не совсем то:

Код:
AdlibRegister("_SendSpace", 10)                                                                 
ToolTip('Space sent...', 0, 0)

While 1
	If PixelGetColor(984, 717) = 0xF6E603 Then
		AdlibUnRegister("_SendSpace")
		ExitLoop
	EndIf
	
	Sleep(1)
WEnd

Func _SendSpace()
	Send("{SPACE}")
EndFunc
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
По идее должна помочь опция
Код:
Opt("SendKeyDownDelay", ???)
, но она не помогает =)
Если верить файлу помощи, то для игр подходит такое сочетание
Код:
Send('{SPACE down}')
Sleep(10000)
Send('{SPACE up}')

держать нажатым пробел в течении 10 секунд, но, например, в блокноте это не работает :D.

Попробуй сделать так:
Код:
Opt("SendKeyDelay", 0)
Opt("SendKeyDownDelay", 5)

HotKeySet('{ENTER}', '_exit')

AdlibRegister('_color_check')
WinWaitActive('Безымянный - Блокнот', '')

While 1
	Send('{SPACE}')
WEnd

Func _color_check()
    If PixelGetColor(984, 717) = 0xF6E603 Then
		Exit
	EndIf
EndFunc

Func _exit()
	Exit
EndFunc

Так снизится задержка между посылками пробелов и может это будет незаметно ;).
 
Автор
K

kcop

Новичок
Сообщения
3
Репутация
0
я явно плохо читал мануалы )
спасибо, Send("{SPACE down}") то что доктор прописал :whistle:

Код:
Send("{SPACE down}")
		While (PixelGetColor(1063,717) <> 0x880E03)
			Sleep(5)
		WEnd
	Send("{SPACE up}")
 
Верх