変換/無変換をホットキーにする
変換はsc079、無変換はsc07Bをホットキーにする。
この時、ホットキーの直前に~を付けないと本来の変換/無変換が使えなくなってしまう。
;変換+q
~sc079 & q::
{
MsgBox "変換 + q が押されました"
}
;無変換+q
~sc07B & q::
{
MsgBox "無変換 + q が押されました"
}
変換/無変換を送る
逆に変換/無変換を押させる場合は、変換はvk1Dsc07B、無変換はvk1Csc079を送る。
;{Ctrl}+{Alt}+F11
^!F11::
{
;変換
Send "{vk1Dsc07B}"
}
;{Ctrl}+{Alt}+F12
^!F12::
{
;無変換
Send "{vk1Csc079}"
}
一部リモートアプリで変換/無変換が送れない対策
接続先と接続元双方にAutoHotkeyがインストールされていることが条件になるが、以下のように普段使わないファンクションキー(F13~F24)を間に挟んでやると良い。
接続元
;ここでは「ISL Light」というリモートアプリの例
#HotIf WinActive("- ISL Light")
;変換
sc07B::
{
Send "{F18}"
}
;無変換
sc079::
{
Send "{F17}"
}
#HotIf
接続先
F18::
{
;変換
Send "{vk1Dsc07B}"
}
F17::
{
;無変換
Send "{vk1Csc079}"
}
私が使っている変換/無変換ホットキー
私はGoogle日本語入力で、変換を押したらIMEオン、無変換を押したらIMEオフに設定している。
その上で、AutoHotkeyで変換/無変換を押しながら他のキーと組み合わせることで60%キーボードっぽい動きをさせたり、変換/無変換2回押しでタスク切換え画面を出すなどさせている。
ちなみにいくつかのホットキーで使っている{Blind}は何かというと、これを付けると他の修飾キーが有効になる。例えば{無変換}+{j}はカーソル左キーが送られるが、{Shift}+{無変換}+{j}で、{Shift}+カーソル左キーになる。
Send - 構文と使用法|AutoHotkey v2
Send、SendText、SendInput、SendPlay、SendEvent関数は、アクティブウィンドウにキーストロークやマウスクリックのシミュレーションを送信します。
/*
無変換(sc07B)/変換(sc079)を押しながら
1~0-^ F1~F12
q ESC
w Ctrl+Shift+Tab タブブラウザなどのタブ移動
e Ctrl+Tab タブブラウザなどのタブ移動
s Ctrl+PdUp エクセルのシート移動
d Ctrl+PgDn エクセルのシート移動
a AppsKey
z クリップボードの最初と最後の空白と改行コードを削除
r 7
t 8
y 9
f 4
g 5
h 6
v 1
b 2
n 3
Space 0
m Enter
u BackSpace
o Delete
i カーソル↑
j カーソル←
k カーソル↓
l カーソル→
, Home
. End
p PgUp
; PgDn
@ Google検索
[ WheelUp
] WheelDown
*/
sc07B & 1::
sc079 & 1::
{
Send "{Blind}{F1}"
}
sc07B & 2::
sc079 & 2::
{
Send "{Blind}{F2}"
}
sc07B & 3::
sc079 & 3::
{
Send "{Blind}{F3}"
}
sc07B & 4::
sc079 & 4::
{
Send "{Blind}{F4}"
}
sc07B & 5::
sc079 & 5::
{
Send "{Blind}{F5}"
}
sc07B & 6::
sc079 & 6::
{
Send "{Blind}{F6}"
}
sc07B & 7::
sc079 & 7::
{
Send "{Blind}{F7}"
}
sc07B & 8::
sc079 & 8::
{
Send "{Blind}{F8}"
}
sc07B & 9::
sc079 & 9::
{
Send "{Blind}{F9}"
}
sc07B & 0::
sc079 & 0::
{
Send "{Blind}{F10}"
}
;sc00C="="
sc07B & sc00C::
sc079 & sc00C::
{
Send "{Blind}{F11}"
}
;sc00D="^"
sc07B & sc00D::
sc079 & sc00D::
{
Send "{Blind}{F12}"
}
sc07B & q::
sc079 & q::
{
Send "{Blind}{Esc}"
}
sc07B & w::
sc079 & w::
{
;{Ctrl}+{Shift}+{Tab}
Send "^+{Tab}"
}
sc07B & e::
sc079 & e::
{
;{Ctrl}+{Tab}
Send "^{Tab}"
}
sc07B & s::
sc079 & s::
{
;{Ctrl}+{PgUp}
Send "^{PgUp}"
}
sc07B & d::
sc079 & d::
{
;{Ctrl}+{PgDn}
Send "^{PgDn}"
}
sc07B & a::
sc079 & a::
{
Send "{AppsKey}"
}
sc07B & z::
sc079 & z::
{
;クリップボードの最初と最後の空白と改行コードを削除
A_Clipboard := Trim(A_Clipboard)
A_Clipboard := Trim(A_Clipboard, "`r`n")
}
sc07B & r::
sc079 & r::
{
Send "7"
}
sc07B & t::
sc079 & t::
{
Send "8"
}
sc07B & y::
sc079 & y::
{
Send "9"
}
sc07B & f::
sc079 & f::
{
Send "4"
}
sc07B & g::
sc079 & g::
{
Send "5"
}
sc07B & h::
sc079 & h::
{
Send "6"
}
sc07B & v::
sc079 & v::
{
Send "1"
}
sc07B & b::
sc079 & b::
{
Send "2"
}
sc07B & n::
sc079 & n::
{
Send "3"
}
sc07B & Space::
sc079 & Space::
{
Send "0"
}
sc07B & m::
sc079 & m::
{
Send "{Blind}{Enter}"
}
sc07B & u::
sc079 & u::
{
Send "{Blind}{BackSpace}"
}
sc07B & o::
sc079 & o::
{
Send "{Blind}{Delete}"
}
sc07B & i::
sc079 & i::
{
Send "{Blind}{Up}"
}
sc07B & j::
sc079 & j::
{
Send "{Blind}{Left}"
}
sc07B & k::
sc079 & k::
{
Send "{Blind}{Down}"
}
sc07B & l::
sc079 & l::
{
Send "{Blind}{right}"
}
;sc033=","
sc07B & sc033::
sc079 & sc033::
{
Send "{Blind}{Home}"
}
;sc034="."
sc07B & sc034::
sc079 & sc034::
{
Send "{Blind}{End}"
}
sc07B & p::
sc079 & p::
{
Send "{Blind}{PgUp}"
}
;sc027=";"
sc07B & sc027::
sc079 & sc027::
{
Send "{Blind}{PgDn}"
}
sc07B & @::
sc079 & @::
{
;Google検索
searchstr := InputBox("","Google検索","w300 h70").value
if(searchstr != ""){
Run "http://www.google.com/search?q=" . searchstr
}
}
;sc01B="["
sc07B & sc01B::
sc079 & sc01B::
{
Send "{blind}{WheelUp}"
}
;SC02B="]"
sc07B & sc02B::
sc079 & sc02B::
{
Send "{blind}{WheelDown}"
}
;{変換}単独
sc079::
{
;2回押しでタスクの切り替え画面を出す
if (A_ThisHotkey == A_PriorHotkey && A_TimeSincePriorHotkey <= 400)
{
Send "^!{Tab}"
}
;{無変換}を送る(Google日本語入力でIMEを有効化)
Send "{vk1Csc079}"
}
;{無変換}単独
sc07B::
{
;2回押しでタスクの切り替え画面を出す
if (A_ThisHotkey == A_PriorHotkey && A_TimeSincePriorHotkey <= 400)
{
Send "^!+{Tab}"
}
;{無変換}を送る(Google日本語入力でIMEを無効化)
else
{
Send "{vk1Dsc07B}"
}
}
;「タスクの切り替え」画面中の操作
#HotIf WinActive("タスクの切り替え")
i::
{
Send "{Up}"
}
j::
{
Send "{Left}"
}
k::
{
Send "{Down}"
}
l::
{
Send "{Right}"
}
q::
{
Send "{Esc}"
;50ミリ秒後にマウスカーソルの下にあるウィンドウIDを取得してアクティブにする
Sleep 50
MouseGetPos , , &id
WinActivate(id)
}
m::
{
Send "{Enter}"
}
#HotIf


コメント