百相鍵盤『き』をUSキーボードで ―― その3

右シフトキーに文字キーとシフトの両方の機能を持たせてみる。


新バージョン出てます:百相鍵盤『き』をUSキーボードで ―― その4


前回までのおはなし http://d.hatena.ne.jp/kettt/20080719/p1


前回までは、「右シフトキーを短く押せば[`]が入力される」というだけの仕掛けでした。
よって、たとえば高速に Shift + L を打つと、“L`”と入力されることがありました。


今回は、「右シフトキーを『単独で』短く押せば[`]が入力される」というものに変更します。

ls_state=0



~RShift::
    if ((ls_state=0)&&GetKeyState("RShift","P"))
        ls_state=1
    else
        ls_state=2
    Input, OutputVar, L1 T0.2 V
return


~RShift Up::
    Input
    if((ls_state=1)and(A_TimeSincePriorHotkey < 200)and(OutputVar=""))
    {
        send, ``
    }
    ls_state=0
return



~+RShift::
    if ((ls_state=0)&&GetKeyState("RShift","P"))
        ls_state=1
    else
        ls_state=2
    Input, OutputVar, L1 T0.2 V
return


~+RShift Up::
    Input
    if((ls_state=1)&&(A_TimeSincePriorHotkey < 200)and(OutputVar=""))
    {
        send, ~
    }
    ls_state=0
return

Inputが文字キーしか拾ってくれないので、文字キーとの同時押しだけに対応しています。
十分快適。

『き』側の設定

上記スクリプトを使うには、kiKey_106ファイルを編集します。

まず、[`~]キーで打相が切り換わるのは不便なので、打相鍵はF12にやります。

  • 鍵54のscancodeを58に書き換える。(もとは29)

次に、[`~]キーに47鍵を割り当てます。

  • 鍵47のscancodeを29に書き換える。(もとは73)


CapsLockとF12を、キー入れ換えソフトで入れ換えればできあがり。