Нажмите клавишу дольше 0,7 секунды, чтобы нажать ее со сдвигом:
#UseHook ; install the keyboard hook to activate hotkeys not supported in the operating system
; create a string of the keys you want be shifted:
keys := "1,2,3,4,a,b,c,d,SC01B,SC02B" ; SC01B = scan code of "#" SC02B = "+"
Loop, parse, keys, `, ; retrieves substrings (fields) from the string "keys" one at a time based on the delimiter ","
Hotkey, %A_Loopfield%, pressedkey ; creates a hotkey of the retrieved field
return
pressedkey: ; A_ThisHotkey: the most recently executed hotkey
KeyWait, %A_ThisHotkey%, T0.7 ; wait 0.7 seconds for the key to be released
If ErrorLevel ; the key has not yet been released after 0.7 seconds
{
KeyWait, %A_ThisHotkey% ; wait for the key to be released
if (SubStr(%A_ThisHotkey%, 1, 2) = SC) ; substring: starting position=1 (first character), Length=2 (characters)
Send +{%A_ThisHotkey%}
else
Send +%A_ThisHotkey%
}
else ; the key has been released before the 0.7 seconds limit
{
if (SubStr(%A_ThisHotkey%, 1, 2) = SC)
Send {%A_ThisHotkey%}
else
Send %A_ThisHotkey%
}
return
РЕДАКТИРОВАТЬ:
#UseHook
keys := "1,2,3,4,a,b,c,d,SC01B,SC02B"
Loop, parse, keys, `,
Hotkey, %A_Loopfield%, pressedkey
return
pressedkey:
KeyWait, %A_ThisHotkey%, T0.7
If ErrorLevel
{
KeyWait, %A_ThisHotkey%
Send +{%A_ThisHotkey%}
}
else
Send {%A_ThisHotkey%}
return