Подскажите как пофиксить поведение при зажатии кнопки

Помощь в написании скриптов
Wanyan
Posts: 3
Joined: 05 Mar 2023, 09:11

Подскажите как пофиксить поведение при зажатии кнопки

01 Jul 2023, 13:22

Пытаюсь сделать так, чтобы когда нажимается и сразу отпускается кнопка SC021 (T в моей раскладке), то отправлялось обычное нажатие, то есть писалась буква Т, а если кнопку зажал, то отправлялся LShift, пока кнопку не отпущу. Столкнулся с проблемой, что когда зажимаю кнопку, Shift отправляется, но также и отправляется на авторепите буква Т. Помогите пожалуйста, не понимаю что делаю не так.

Code: Select all

SC021::
	KeyWait, SC021, T.15 ;300 ms
	IF ErrorLevel
	{
		SendInput, {Blind}{LShift down}
		Loop {
			if (!GetKeyState("SC021", "p")){
				;SendInput, bob
				Break
			}
			Sleep, 100
		}
		SendInput, {Blind}{LShift up}
	}
	
	Else
		SendInput, {SC021}

return
Attachments
chrome_WFxydWV52M.gif
chrome_WFxydWV52M.gif (8.38 KiB) Viewed 459 times
mcl
Posts: 361
Joined: 04 May 2018, 16:35

Re: Подскажите как пофиксить поведение при зажатии кнопки

04 Jul 2023, 13:27

Wanyan wrote: Пытаюсь сделать так, чтобы когда нажимается и сразу отпускается кнопка SC021 (T в моей раскладке), то отправлялось обычное нажатие, то есть писалась буква Т, а если кнопку зажал, то отправлялся LShift, пока кнопку не отпущу. Столкнулся с проблемой, что когда зажимаю кнопку, Shift отправляется, но также и отправляется на авторепите буква Т. Помогите пожалуйста, не понимаю что делаю не так.

Code: Select all

*SC021::
  ...
После того как таймаут вышел, зажимается Shift. Системный автоповтор продолжает отсылать нажатия клавиш, но теперь уже как Shift+T. Такой горячей клавиши в AHK не задано, поэтому она пропускается и вводится как обычно – как заглавная T. Скрипт при этом продолжает делать своё дело и о творящемся снаружи безобразии ничего не подозревает.

Return to “Помощь”

Who is online

Users browsing this forum: No registered users and 8 guests