1

Тема: AHK: в зависимости от времени с момента нажатия клавиш разные действия

В общем, нужен скрипт на пробел, который будет выполнять два разных действия в зависимости от того, была ли нажата цифра (условно пусть будет "4") раньше, чем 2 секунды перед нажатием пробела или позже.
При этом, если цифра "4" в принципе не нажималась с момента запуска скрипта, то должен выполняться алгоритм, как будто 2 секунды уже прошли с момента нажатия "4".
Еще разок своими словами попробую объяснить, чтобы меньше путаницы было: юзер нажимает пробел. если перед этим была нажата "4", и с этого момента прошло менее 2000мс, то нужно выполнить "A". если была нажата "4", но прошло больше 2000мс, то выполняется "B". если не было нажато "4" вообще, то нужно выполнять "B".
И небольшое пожелание, чтобы не было конфликтов с переключением работоспособности скрипта (я использую !3:: Hotkey, *~$Space, Toggle)

2

Re: AHK: в зависимости от времени с момента нажатия клавиш разные действия



ih := InputHook("L0")
ih.KeyOpt("{All}", "+V N")
ih.OnKeyDown := Func("OnKeyDown")
ih.Start()
Return

SpaceDown(Time) {
	If !Time || A_TickCount - Time > 2000
	{
		MsgBox B
	} Else  {
		MsgBox A
	}
}
 
OnKeyDown(InputHook, VK, SC) {
	Critical
	Static PrTime, Keys := {"sc5":"4"}     
	If VK = 32
	{
		InputHook.Stop()
		SpaceDown(PrTime) 
		InputHook.Start()
		Return 
	} 
	If Keys["sc" SC]
		PrTime := A_TickCount
	Else 
		PrTime := ""
	Return
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui