情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

ChangeKeyを使用してWindowsキーをF13キーに変更する方法 このエントリーを含むはてなブックマーク

ChangeKey

今回は、ChangeKeyを使用して、WindowsキーをF13キーに変更する方法をメモしておきます。これは、AutoHotkeyでホットキーを設定するに当たって、Windowsキーをそのまま利用するのと、いろいろな条件下ではまることが分かったからです。Ctrlキーなども、F14-F24キーに割り当てると便利かもしれません。それに必要な情報(F13-F24の仮想キーコードスキャンコードの一覧もメモしておきます。この記事は基本的にはAutoHotkeyユーザー向けになります

スキャンキー調査

ChangeKeyでは、CapsLockキーをCtrlキーに置き換えるなどの操作が、GUIで簡単にできるのですが、F13-F24キーはそういう訳にはいきません。というのも、GUIに表示されるキーボードにそんなキーが無いからです。まず、その無いキーを指定するための識別子「スキャンコード」を調べます。

結果だけを書くと次の通りです。

F13-F24の仮想キーコード/スキャンコード
キー 仮想キーコード(Vk) スキャンコード(Sc)
F13 0x007C 0x0064
F14 0x007D 0x0065
F15 0x007E 0x0066
F16 0x007F 0x0067
F17 0x0080 0x0068
F18 0x0081 0x0069
F19 0x0082 0x006A
F20 0x0083 0x006B
F21 0x0084 0x006C
F22 0x0085 0x006D
F23 0x0086 0x006E
F24 0x0087 0x0076
調査環境:Windows 7 64bit

調査には、下のようなAutoHotkeyスクリプトを使ったあと、キーの入力履歴をAutoHotkeyのKey historyから見ただけです。

#KeyHistory 100
^a::
Send, {F13}
Send, {F14}
Send, {F15}
Send, {F16}
Send, {F17}
Send, {F18}
Send, {F19}
Send, {F20}
Send, {F21}
Send, {F22}
Send, {F23}
Send, {F24}
return

ChangeKeyでWindowsキーをF13にする

管理者権限でChangeKeyを起動して、変更したいキー(Win左)をクリックします。すると、「【Win左】キーをどのキーに変更しますか?」と聞かれます。ここで、「F13」キーは存在しないので、一番右上にある「Scan code」をクリックします。

すると、スキャンコードが入力できるので、ここでF13キーのスキャンコードである「0x0064」を入力します実際に入力するのは「0x」を除いた「0064」そして、最後にOKを押します。メニューの「登録」を押して、マシンを再起動します。

Winキーの機能をAutoHotkeyで引き継ぐ

再起動すると、当然ながらWindowsキーがF13キーになってしまい、Windowsキー本来の動作が行われなくなります。そこで、その機能をAutoHotkeyの.ahkスクリプトで補います。たとえば、次のスクリプトでは、「Winキー単独押し」と「Win+R」を復活させています。

~F13 Up::Send, {Blind}{LWin}
F13 & r::Send, #r

これで、Winキーをあげたときにスタートメニューが表示され、Winキーを押しながらrを押したときに、ファイル名を指定して実行」が動作します。

Winキー(現F13)にHotkeyを割り当てる1 Chromeにフォーカスして検索する直前へ

では、次に「Win+c」で起動中のChromeにフォーカスを合わせ、検索直前の状態(アドレスバーに?を入力)になるようにしてみます。

#IfWinExist  - Google Chrome ahk_class Chrome_WidgetWin_0
	F13 & c::
		WinActivate ; フォーカス
		WinGetPos, X, Y, Width, Height
		MouseMove, Width/2, Height/2 ; マウスカーソルを移動(マルチモニタ向け)
		Send, ^e ; 検索状態へ
		return

Winキー(現F13)にHotkeyを割り当てる2 英辞郎on the webで検索する直前へ

ここまでは、別にF13にする意味がそんなに無かったのですが、次のWin+eでChromeにフォーカスして、英辞郎 on the webでの検索直前の状態に移行するスクリプトはそうは行きません。次に示すのは、うまくいく方式です。

#IfWinExist  - Google Chrome ahk_class Chrome_WidgetWin_0
	F13 & e::
		WinActivate
		;Send, ^1 ; 1番目のタブで開くとき
		Send, ^t ; 新しいタブで開くとき
		Send, ^l ; アドレスバーにフォーカス
		Send, {vk1Dsc07B} ; 日本語入力をOFF
		Send, eow.alc.co.jp/ ; アドレスを入力
                return

このスクリプトは、Ctrl+Lに何も割り当てられておらず、かつ、無変換で日本語入力がOFFになるようにIME(MS-IMEやATOK)を設定している場合用のスクリプトです。Ctrl+Lとの衝突回避がうまくできないのでどなたかご存じの方はヒントください。。。

もしこのとき、Winキーそのままで利用すると、Winキーを離すのが遅れるとeow.alc.co.jpを入力するときにWin+Lが発動してログアウトしてしまうのです。うまく書けば防げるのかもしれませんが、他にもWinキーのOSデフォルトの機能をうまく上書き出来ないなどの問題が起こったので、現状ではWinキーのF13化おすすめです。OSデフォルトの動作を気にせずに書けるので。

まとめ

AutoHotkeyを使いこなせないのが悪いのかもしれませんが、とりあえず細かいこと考えずに済むのでF13-F24化おすすめです。

おすすめキーボード Realforce
プログラマ御用達キーボード PFU Happly Hacking Keyboard

AutoHotkey | コメント:0 | トラックバック:0 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

この記事のコメント

コメントの投稿 エントリの新旧に関わらず、極力18時間中に返信します。














この記事のトラックバック

トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。