カテゴリー
AutoHotKey Dvorak配列 JISかなシフト配列 キーボード配列

AutoHotKeyでSandSを実現する

SandSとはSpace and Shiftの略。
Spaceを押し続けている間はShiftキー入力になり、
Spaceを単発で押した場合にはSpaceが入力できる。
(Spaceを連続で入力する時は無変換キー+”r”で入力する)

AutoHotKeyでSandSを実現するため、
様々なサイトを参照したが、どれも思い通り動かなかった。
(自分が変換キーとか無変換キーの同時押しが必要だからだが。)

特に、AutoHotKeyで3つのキーを同時入力し、
キーマップを変更することはできない。
3つのキーを同時入力し、動作を切り替えるには、以下のようにする。

;無変換キーとqが同時に押された場合に、
sc07B & q::
  ;Spaceキーが押されているか?
  If GetKeyState("Space", "P")
    ;Spaceキーが押されている場合はShift&Escに変換
    Send,{Blind}+{Esc}
  Else
    ;Spaceキーが押されていない場合はEscに変換
    Send,{Blind}{Esc}
  Return

というわけで、とても長くなってしまい冗長だが、愚直に書いた。

  • 英語直接入力はDvorak(記号は日本語キーボード)
  • 日本語入力はJISかなシフト配列
  • 「変換」「無変換」キー同時押しショートカットあり
  • SandSあり
SendMode Input
SetWorkingDir %A_ScriptDir%


IME_GET(WinTitle="A")  {
    ControlGet,hwnd,HWND,,,%WinTitle%
    if    (WinActive(WinTitle))    {
        ptrSize := !A_PtrSize ? 4 : A_PtrSize
        VarSetCapacity(stGTI, cbSize:=4+4+(PtrSize*6)+16, 0)
        NumPut(cbSize, stGTI,  0, "UInt")   ;    DWORD   cbSize;
        hwnd := DllCall("GetGUIThreadInfo", Uint,0, Uint,&stGTI)
                 ? NumGet(stGTI,8+PtrSize,"UInt") : hwnd
    }

    return DllCall("SendMessage"
          , UInt, DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hwnd)
          , UInt, 0x0283  ;Message : WM_IME_CONTROL
          ,  Int, 0x0005  ;wParam  : IMC_GETOPENSTATUS
          ,  Int, 0)      ;lParam  : 0
}


#IF (IME_GET() == 0)

	;when IME is OFF, dvorak (kigou=JIS, with ctrl=qwerty)

	Space & 1::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+1
	   	Else
			Send,{Blind}+1
		Return

	Space & 2::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+2
	   	Else
			Send,{Blind}+2
		Return

	Space & 3::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+3
	   	Else
			Send,{Blind}+3
		Return

	Space & 4::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+4
	   	Else
			Send,{Blind}+4
		Return

	Space & 5::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+5
	   	Else
			Send,{Blind}+5
		Return

	Space & 6::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+6
	   	Else
			Send,{Blind}+6
		Return

	Space & 7::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+7
	   	Else
			Send,{Blind}+7
		Return

	Space & 8::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+8
	   	Else
			Send,{Blind}+8
		Return

	Space & 9::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+9
	   	Else
			Send,{Blind}+9
		Return

	Space & 0::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+0
	   	Else
			Send,{Blind}+0
		Return

	Space & -::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+-
	   	Else
			Send,{Blind}+-
		Return

	Space & sc00D::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+{sc00D}
	   	Else
			Send,{Blind}+{sc00D}
		Return

	Space & \::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+\
	   	Else
			Send,{Blind}+\
		Return


	q::Send,'
	+q::Send,"
	Space & q::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+q
	   	Else
			Send,{Blind}"
		Return

	w::Send,,
	+w::Send,<
	Space & w::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+w
	   	Else
			Send,{Blind}<
		Return

	e::Send,.
	+e::Send,>
	Space & e::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+e
	   	Else
			Send,{Blind}>
		Return

	r::Send,p
	+r::Send,+p
	Space & r::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+r
	   	Else
			Send,{Blind}+p
		Return

	t::Send,y
	+t::Send,+y
	Space & t::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+t
	   	Else
			Send,{Blind}+y
		Return

	y::Send,f
	+y::Send,+f
	Space & y::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+y
	   	Else
			Send,{Blind}+f
		Return

	u::Send,g
	+u::Send,+g
	Space & u::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+u
	   	Else
			Send,{Blind}+g
		Return

	i::Send,c
	+i::Send,+c
	Space & i::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+i
	   	Else
			Send,{Blind}+c
		Return

	o::Send,r
	+o::Send,+r
	Space & o::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+o
	   	Else
			Send,{Blind}+r
		Return

	p::Send,l
	+p::Send,+l
	Space & p::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+p
	   	Else
			Send,{Blind}+l
		Return

	@::Send,/
	+@::Send,?
	Space & @::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+@
	   	Else
			Send,{Blind}?
		Return

	Space & [::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+[
	   	Else
			Send,{Blind}+[
		Return


	Space & a::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+a
	   	Else
			Send,{Blind}+a
		Return

	s::Send,o
	+s::Send,+o
	Space & s::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+s
	   	Else
			Send,{Blind}+o
		Return

	d::Send,e
	+d::Send,+e
	Space & d::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+d
	   	Else
			Send,{Blind}+e
		Return

	f::Send,u
	+f::Send,+u
	Space & f::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+f
	   	Else
			Send,{Blind}+u
		Return

	g::Send,i
	+g::Send,+i
	Space & g::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+g
	   	Else
			Send,{Blind}+i
		Return

	h::Send,d
	+h::Send,+d
	Space & h::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+h
	   	Else
			Send,{Blind}+d
		Return

	j::Send,h
	+j::Send,+h
	Space & j::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+j
	   	Else
			Send,{Blind}+h
		Return

	k::Send,t
	+k::Send,+t
	Space & k::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+k
	   	Else
			Send,{Blind}+t
		Return

	l::Send,n
	+l::Send,+n
	Space & l::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+l
	   	Else
			Send,{Blind}+n
		Return

	sc027::Send,s
	+sc027::Send,+s
	Space & sc027::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+{sc027}
	   	Else
			Send,{Blind}+s
		Return

	sc028::Send,-
	+sc028::Send,_
	Space & sc028::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+{sc028}
	   	Else
			Send,{Blind}_
		Return


	z::Send,{SC027} ; ";"
	+z::Send,{SC028} ; ":"
	Space & z::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+z
	   	Else
			Send,{Blind}{SC028}
		Return

	x::Send,q
	+x::Send,+q
	Space & x::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+x
	   	Else
			Send,{Blind}+q
		Return

	c::Send,j
	+c::Send,+j
	Space & c::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+c
	   	Else
			Send,{Blind}+j
		Return

	v::Send,k
	+v::Send,+k
	Space & v::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+v
	   	Else
			Send,{Blind}+k
		Return

	b::Send,x
	+b::Send,+x
	Space & b::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+b
	   	Else
			Send,{Blind}+x
		Return

	n::Send,b
	+n::Send,+b
	Space & n::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+n
	   	Else
			Send,{Blind}+b
		Return

	Space & m::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+m
	   	Else
			Send,{Blind}+m
		Return

	sc033::Send,w
	+sc033::Send,+w
	Space & sc033::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+{sc033}
	   	Else
			Send,{Blind}+w
		Return

	.::Send,v
	+.::Send,+v
	Space & .::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+.
	   	Else
			Send,{Blind}+v
		Return

	/::Send,z
	+/::Send,+z
	Space & /::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+/
	   	Else
			Send,{Blind}+z
		Return

	+sc073::Send,@
	Space & sc073::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+{sc073}
	   	Else
			Send,{Blind}@
		Return



#IF (IME_GET() != 0)  

	;when IME is on, JIS kana shift
	+1::Send,{U+FF01} ;!
	Space & 1::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+1
	   	Else
			Send,{Blind}{U+FF01} ;!
		Return

	+2::Send,{U+FFE5} ;¥
	Space & 2::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+2
	   	Else
			Send,{Blind}{U+FFE5} ;¥
		Return

	Space & 3::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+3
	   	Else
			Send,{Blind}+3
		Return

	Space & 4::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+4
	   	Else
			Send,{Blind}+4
		Return

	Space & 5::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+5
	   	Else
			Send,{Blind}+5
		Return

	Space & 6::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+6
	   	Else
			Send,{Blind}+6
		Return

	Space & 7::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+7
	   	Else
			Send,{Blind}+7
		Return

	Space & 8::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+8
	   	Else
			Send,{Blind}+8
		Return

	Space & 9::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+9
	   	Else
			Send,{Blind}+9
		Return

	Space & 0::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+0
	   	Else
			Send,{Blind}+0
		Return

	Space & -::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+-
	   	Else
			Send,{Blind}+-
		Return

	Space & sc00D::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+{sc00D}
	   	Else
			Send,{Blind}+{sc00D}
		Return

	Space & \::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+\
	   	Else
			Send,{Blind}+\
		Return


	+q::Send,1
	Space & q::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+q
	   	Else
			Send,{Blind}1
		Return

	+w::Send,2
	Space & w::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+w
	   	Else
			Send,{Blind}2
		Return

	+e::Send,3
	Space & e::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+e
	   	Else
			Send,{Blind}3
		Return

	+r::Send,4
	Space & r::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+r
	   	Else
			Send,{Blind}4
		Return

	+t::Send,5
	Space & t::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+t
	   	Else
			Send,{Blind}5
		Return

	+y::Send,6
	Space & y::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+y
	   	Else
			Send,{Blind}6
		Return

	+u::Send,7
	Space & u::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+u
	   	Else
			Send,{Blind}7
		Return

	+i::Send,8
	Space & i::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+i
	   	Else
			Send,{Blind}8
		Return

	+o::Send,9
	Space & o::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+w
	   	Else
			Send,{Blind}2
		Return

	+p::Send,0
	Space & p::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+p
	   	Else
			Send,{Blind}0
		Return

	+@::Send,[
	Space & @::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+@
	   	Else
			Send,{Blind}[
		Return

	+[::Send,{U+300C} ;「
	Space & [::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+[
	   	Else
			Send,{Blind}{U+300C} ;「
		Return


	+a::Send,]
	Space & a::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+a
	   	Else
			Send,{Blind}]
		Return

	+s::Send,+e
	Space & s::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+s
	   	Else
			Send,{Blind}+e
		Return

	+d::Send,+3
	Space & d::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+d
	   	Else
			Send,{Blind}+3
		Return

	+f::Send,+4
	Space & f::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+f
	   	Else
			Send,{Blind}+4
		Return

	+g::Send,+5
	Space & g::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+g
	   	Else
			Send,{Blind}+5
		Return

	+h::Send,+6
	Space & h::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+h
	   	Else
			Send,{Blind}+6
		Return

	+j::Send,+7
	Space & j::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+j
	   	Else
			Send,{Blind}+7
		Return

	+k::Send,+8
	Space & k::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+k
	   	Else
			Send,{Blind}+8
		Return

	+l::Send,+9
	Space & l::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+l
	   	Else
			Send,{Blind}+9
		Return

	+sc027::Send,+0
	Space & sc027::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+sc027
	   	Else
			Send,{Blind}+0
		Return

	+sc028::Send,\
	Space & sc028::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+sc028
	   	Else
			Send,{Blind}\
		Return

	+]::Send,{U+300D} ; 」
	Space & ]::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+]
	   	Else
			Send,{Blind}{U+300D} ; 」
		Return


	Space & z::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+z
	   	Else
			Send,{Blind}+z
		Return

	+x::Send,-
	Space & x::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+x
	   	Else
			Send,{Blind}-
		Return

	+c::Send,{^}
	Space & c::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+c
	   	Else
			Send,{Blind}{^}
		Return

	+v::Send,{U+FF08} ;(
	Space & v::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+v
	   	Else
			Send,{Blind}{U+FF08} ;(
		Return

	+b::Send,{U+FF09} ;)
	Space & b::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+b
	   	Else
			Send,{Blind}{U+FF09} ;)
		Return

	+n::Send,{U+300C} ;「
	Space & n::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+n
	   	Else
			Send,{Blind}{U+300C} ;「
		Return

	+m::Send,{U+300D} ; 」
	Space & m::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+m
	   	Else
			Send,{Blind}{U+300D} ; 」
		Return

	Space & sc033::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+{sc033}
	   	Else
			Send,{Blind}+{sc033}
		Return

	Space & .::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+.
	   	Else
			Send,{Blind}+.
		Return

	Space & /::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+/
	   	Else
			Send,{Blind}+/
		Return

	+sc073::Send,{U+FF1F} ;?
	Space & sc073::
		If GetKeyState("Ctrl", "P")
			Send,{Blind}^+{sc073}
	   	Else
			Send,{Blind}{U+FF1F} ;?
		Return


#IF
;don't care if IME is ON or OFF

	;muhenkan
	sc07B & q::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Esc}
	   	Else
			Send,{Blind}{Esc}
		Return

	sc07B & e::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Up}
	   	Else
			Send,{Blind}{Up}
		Return

	sc07B & r::
		If GetKeyState("Space", "P")
			Send,{Blind}+{U+0020}  ; Space
	   	Else
			Send,{Blind}{U+0020}  ; Space
		Return

	sc07B & y::
		If GetKeyState("Space", "P")
			Send,{Blind}+{PrintScreen}
	   	Else
			Send,{Blind}{PrintScreen}
		Return

	sc07B & u::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Insert}
	   	Else
			Send,{Blind}{Insert}
		Return

	sc07B & i::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Home}
	   	Else
			Send,{Blind}{Home}
		Return

	sc07B & o::
		If GetKeyState("Space", "P")
			Send,{Blind}+{PgUp}
	   	Else
			Send,{Blind}{PgUp}
		Return


	sc07B & a::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Backspace}
	   	Else
			Send,{Blind}{Backspace}
		Return

	sc07B & s::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Left}
	   	Else
			Send,{Blind}{Left}
		Return

	sc07B & d::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Down}
	   	Else
			Send,{Blind}{Down}
		Return

	sc07B & f::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Right}
	   	Else
			Send,{Blind}{Right}
		Return

	sc07B & g::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Enter}
	   	Else
			Send,{Blind}{Enter}
		Return

	sc07B & h::
		If GetKeyState("Space", "P")
			Send,{Blind}+{AppsKey}
	   	Else
			Send,{Blind}{AppsKey}
		Return

	sc07B & j::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Delete}
	   	Else
			Send,{Blind}{Delete}
		Return

	sc07B & k::
		If GetKeyState("Space", "P")
			Send,{Blind}+{End}
	   	Else
			Send,{Blind}{End}
		Return

	sc07B & l::
		If GetKeyState("Space", "P")
			Send,{Blind}+{PgDn}
	   	Else
			Send,{Blind}{PgDn}
		Return

	sc07B & sc027::
		If GetKeyState("Space", "P")
			Send,{Blind}+{Backspace}
	   	Else
			Send,{Blind}{Backspace}
		Return

	sc07B & sc028::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F12}
	   	Else
			Send,{Blind}{F12}
		Return


	sc07B & z::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F1}
	   	Else
			Send,{Blind}{F1}
		Return

	sc07B & x::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F2}
	   	Else
			Send,{Blind}{F2}
		Return

	sc07B & c::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F3}
	   	Else
			Send,{Blind}{F3}
		Return

	sc07B & v::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F4}
	   	Else
			Send,{Blind}{F4}
		Return

	sc07B & b::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F5}
	   	Else
			Send,{Blind}{F5}
		Return

	sc07B & n::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F6}
	   	Else
			Send,{Blind}{F6}
		Return

	sc07B & m::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F7}
	   	Else
			Send,{Blind}{F7}
		Return

	sc07B & sc033::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F8}
	   	Else
			Send,{Blind}{F8}
		Return

	sc07B & .::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F9}
	   	Else
			Send,{Blind}{F9}
		Return

	sc07B & /::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F10}
	   	Else
			Send,{Blind}{F10}
		Return

	sc07B & sc073::
		If GetKeyState("Space", "P")
			Send,{Blind}+{F11}
	   	Else
			Send,{Blind}{F11}
		Return


	;henkan
	sc079 & q::
		If GetKeyState("Space", "P")
			Send,{Blind}+1
	   	Else
			Send,{Blind}1
		Return

	sc079 & w::
		If GetKeyState("Space", "P")
			Send,{Blind}+2
	   	Else
			Send,{Blind}2
		Return

	sc079 & e::
		If GetKeyState("Space", "P")
			Send,{Blind}+3
	   	Else
			Send,{Blind}3
		Return

	sc079 & r::
		If GetKeyState("Space", "P")
			Send,{Blind}+4
	   	Else
			Send,{Blind}4
		Return

	sc079 & t::
		If GetKeyState("Space", "P")
			Send,{Blind}+5
	   	Else
			Send,{Blind}5
		Return

	sc079 & y::
		If GetKeyState("Space", "P")
			Send,{Blind}+6
	   	Else
			Send,{Blind}6
		Return

	sc079 & u::
		If GetKeyState("Space", "P")
			Send,{Blind}+7
	   	Else
			Send,{Blind}7
		Return

	sc079 & i::
		If GetKeyState("Space", "P")
			Send,{Blind}+8
	   	Else
			Send,{Blind}8
		Return

	sc079 & o::
		If GetKeyState("Space", "P")
			Send,{Blind}+9
	   	Else
			Send,{Blind}9
		Return

	sc079 & p::
		If GetKeyState("Space", "P")
			Send,{Blind}+0
	   	Else
			Send,{Blind}0
		Return

	sc079 & @::
		If GetKeyState("Space", "P")
			Send,{Blind}+{sc029} ;JP_HANKAKU_ZENKAKU
	   	Else
			Send,{Blind}{sc029} ;JP_HANKAKU_ZENKAKU
		Return


	sc079 & a::
		If GetKeyState("Space", "P")
			Send,{Blind}+-
	   	Else
			Send,{Blind}-
		Return

	sc079 & s::
		If GetKeyState("Space", "P")
			Send,{Blind}+{^}
	   	Else
			Send,{Blind}{^}
		Return

	sc079 & d::
		If GetKeyState("Space", "P")
			Send,{Blind}+\
	   	Else
			Send,{Blind}\
		Return

	sc079 & f::
		If GetKeyState("Space", "P")
			Send,{Blind}+@
	   	Else
			Send,{Blind}@
		Return

	sc079 & g::
		If GetKeyState("Space", "P")
			Send,{Blind}+:
	   	Else
			Send,{Blind}:
		Return

	sc079 & h::Send,{Blind}{U+007E} ;~
	sc079 & j::Send,{Blind}{NumpadAdd} ;+
	sc079 & k::Send,{Blind}{NumpadMult} ;*
	sc079 & l::Send,{Blind}{NumpadDiv} ;/
	sc079 & sc027::Send,{Blind}{U+003D} ;=
	sc079 & sc028::Send,{Blind}{U+007C} ;|


	sc079 & z::Send,{Blind}{U+0022} ;"
	sc079 & x::Send,{Blind}{U+007B} ;{
	sc079 & c::Send,{Blind}{U+007D} ;}
	sc079 & v::Send,{Blind}{U+005B} ;[
	sc079 & b::Send,{Blind}{U+005D} ;]
	sc079 & n::Send,{Blind}{U+003C} ;<
	sc079 & m::Send,{Blind}{U+003E} ;>
	sc079 & sc033::Send,{Blind}{U+0028} ;(
	sc079 & .::Send,{Blind}{U+0029} ;(
	sc079 & /::Send,{Blind}{NumpadDot} ;.
	sc079 & sc073::Send,{Blind}{U+0027} ;'



	;raw henkan muhenkan
	sc07B::Send,{sc07B}
	sc079::Send,{sc079}

	;raw Space
	Space::Send,{Space}