creature.ws, это немного другое, ТС пытался объяснить (вроде бы), что при зажатом Shift или Control кнопка F считалась зажатой до отпускания модификатора, а не посылалась многократно.
Скрипт ниже при нажатии Ctrl+F или Shift+F зажимает клавишу F, отпуская ее только при отпускании и самой клавиши, и модификатора.
При повторном нажатии Shift+F (Ctrl+F), если модификатор не был отпущен, происходит отпускание и повторное зажатие клавиши F.
Если и этот вариант не устроит ТС, тогда "доктор, у нас проблема" (с)
$vk46:: ; F
Loop
{
Send, {vk46 down}
KeyWait Ctrl
KeyWait Shift
Send, {vk46 up}
if !GetKeyState("vk46", "P")
break
Sleep, 25
}
return
$^vk46::
$+vk46::
if Fdown
Send, {vk46 up}
Fdown = 1
Send, {vk46 down}
KeyWait vk46
return
~Shift up::
~Ctrl up::
if Fdown
{
Send, {vk46 up}
Fdown =
}
return