1 (изменено: mkone112, 2020-07-30 17:27:03)

Тема: AHK: Space как Shift

Что-то не могу придумать как повесить на Space функции Shift, со следующим поведением:
{Space Down}{Key Down}{Key Up} посылает shift + Key
{Space Down}{Key Down}{Space Up}{Key Up} посылает {Space}{Key},
где Key - клавиши символов и F1-F12.

UPD:
Концепт:

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

$Space::
    KeyWait, Space
    if (A_PriorKey == "Space")
        Send {Space}
    else
    {
        Loop, 256
        {
                key_with_space := Format("vk{:x}", A_Index-1)
                if GetKeyState(key_with_space,"P")
                    Send {Space}
        }
    }
return

#if GetKeyState("Space", "P")
$VK51::
$VK57::
$VK46::
$VK50::
$VK47::
$VK4A::
$VK4C::
$VK55::
$VK59::
$VKBA::
$VKDB::
$VKDD::
$VKDC::
$VK41::
$VK52::
$VK53::
$VK54::
$VK44::
$VK48::
$VK4E::
$VK45::
$VK49::
$VK4F::
$VKDE::
$VK5A::
$VK58::
$VK43::
$VK56::
$VK42::
$VK4B::
$VK4D::
$VKBC::
$VKBE::
$VKBF::
    key := SubStr(A_ThisHotkey,2)
    while GetKeyState("Space", "P") && GetKeyState(key, "P")
        sleep 30
    if GetKeyState("Space", "P")
    {
        send +{%key%}
    }
    else
    {
    keywait %key%
    send {Space}
    sleep 30
    send {%key%}
    }
return
#if

Можно ли написать это как-то изящней?