前回、AutoHotkeyを使って、Apple Keyboard(有線)のかな英数キーに変換、無変換を割り当てました。
前回の記事はこちら↓
今回は、未使用キーにスクショを割り当ててみました。
スクショは割と多用しますが、Apple KeyboardにはWindowsキーボードにあるプリントスクリーンキーはありませんし、当然、Macで使うプリントスクリーンのショートカットも使えません(WindowsでMacのキーボードを使っているだけなので当然ですが)。
ノートPCにApple Keyboardをさして使っていますが、スクショのたびにノートPCを開くのはダルいので、今回の割り当てを思いつきました。
未使用キーとしては、F13とF14です。
F13には全体のスクショ(通常のプリントスクリーン)
F14にはアクティブウィンドのスクショ(Alt + プリントスクリーン)
を割り当てます。
環境
Windows10 Pro バージョン1809 64bit
AutoHotkey_1.1.30.03(AutoHotkeyU64.exe)
Apple_keyboard_wired.ahk
結果から。
以下のプログラムを書き込めば、動作します(^^)
前回記事を適用されている方は、この内容に上書きすれば、かな英数とスクショが動作します。
AutoHotkeyの導入などは前回の記事を参考にしてください(^^)
;2019/08/31
;2019/12/09 updated
#InstallKeybdHook
;Apple_keyboard_wired
#USEHOOK
;Macの英数キーをWindowsの無変換キーに割り当てる
sc071 Up::Send,{vk1D}
;MacのかなキーをWindowsの変換キーに割り当てる
sc072 Up::Send,{vk1C}
;MacのF13キーをWindowsのプリントスクリーンキーに割り当てる
sc064 Up::Send,{PrintScreen}
;MacのF14キーをWindowsのプリントスクリーンキーとAltの同時押しに割り当てる(複数キー)
;アクティブウィンドのスクショ
*sc065 Up::
SetKeyDelay -1
Send {Blind}{ALt Down}
Send {Blind}{PrintScreen}
Send {Blind}{ALt Up}
return
#USEHOOK off
;sc071 : macの英数キー
;sc072 : macのかなキー
;vk1D Windowsの無変換キー
;vk1C 変換キー
;sc064 : macのF13キー
;sc065 : macのF14キー
; ";"はコメントです。
Apple_keyboard_wired.ahkの中身
動作についてはプログラム中にコメントを書き入れましたのでそちらを参考にしてください。
スクショについても、やっていることはかな英数変換と同じです。
「F13キーが押されたら、プリントスクリーン動作として扱いなさい」と記述してあります。
プリントスクリーンのキーはそのまんまで「PrintScreen」です。
厄介だったのは、アクティブウィンドのスクショ(Alt+プリントスクリーン)です。
F13にスクショを割り当てることができたので、AltとF13を同時に押せばアクティブウィンドのスクショが撮れると思ったのですが、できませんでした。
そこで、F14をアクティブウィンドのスクショとすることとしました(F14だけでよし。Alt不要)
アクティブウィンドのスクショの場合は、ちょっと記述が変わっていることがわかると思います。
これは、この通りに書かないと動きませんでした(下のサイトさんを参考にさせていただきました。感謝です!)
要は、Altとプリントスクリーンの2つのキーを押すことになるので、複数キーの操作が必要になり、その場合は記述が変わってくるということです。
複数キーの場合は、{Blind}が必要になります。他にも「*(アスタリスク)」や「return」が追加になっていたり、「,(カンマ)」が無くなっていたりと、細かいところが変わっていますので注意してください(^^)
ALt DownはAltを押す指令です。
ALt UpはAltを離す指令です。
ALt DownとALt Upを両方書かないと、F14が押された時点で、Altが押しっぱなし状態になって戻せなくなります。
普段はキーを「押す」ことしか意識しないので、「離す」=Up 操作を忘れがちになります。
これに気づかず、キーがおかしくなり(常にAltが押しっぱなし状態になり)無理やり再起動して戻すという作業を繰り返していました笑
お気をつけください笑
どうやってF13としたか?他のキーにしたい場合は?キーの調べ方
今回はF13,F14を使いましたが、好きなキーに割り当てることができます。
F13に割り当てた方法を踏まえて、他のキーにする方法(キーの調べ方)を紹介します。
まず、F13を特定する(キーコードを調べる)
タスクトレイをみて、起動してるAutoHotkeyのアイコンをダブルクリックします。ここではApple_keyboard_wired.ahkのアイコンをダブルクリックします。(Apple_keyboard_wired.ahk を作っていない方は、AutoHotkeyの実行ファイルだけ起動してダブルクリックしてもいいかもしれません(これは未検証です))
すると、以下のウィンドウが開きます。
押したキーの一覧が表示されます。
上のメニューバーから「View」→「Key history and script info」をクリックします。
知りたいキーを押して、F5(更新)を押します。
ここでは、F13のキーコードが知りたいので、F13キーを押して、F5を押します。
すると、表示が更新され、F13キーはVK7C SC064とわかりました。
仮想キー:VK◯◯ スキャンコード:SC◯◯ です。(Virtual KeyとScanCodeです)
F13をPrintScreenに割り当てる
PrintScreenの記述は、「PrintScreen」です。
記述の仕方については、以下の参考サイトさんを参考にさせていただきました。
変換、無変換を書いた時と同様に書いてみると、スキャンコードはSC064なので
sc064 Up::Send,{PrintScreen}
を追加すれば良いこととなります。
動作確認
記述を追加後、F13を押した結果が以下です。
Send,{PrintScreen}の記述があるので、F13キーがPrintScreenとして扱われたことがわかります。
続いて、「View」→「Key history and script info」をみてもF13を押した時にApple_keyboard_wired.ahkが起動して、PrintScreenに送信されたことがわかります。
同様の手順を踏めば、他のキーを割り当てることができます(^^)
今回は未使用キーを使用しましたが、もともと割当があるキー(ほとんどそうですが)に対して実行すると、もともとのキーの機能は失われますのでご注意下さい。
参考
以下のサイトさんを参考にさせていただきました。ありがとうございます(^^)

以上^ ^
コメント
教えて下さい。
EjectキーにDeleteを割り当てたいのですが
それは不可能なのでしょうか???
コメントありがとうございます(^^)
また、返信に時間がかかってすみません。キーボードが手元になくて確認に時間がかかっておりました。
ご質問のejectキーにdeleteを割り当てたいとのことですが、できませんでした。
すでに試されているとは思いますが、ejectキーはAutoHotkeyのヒストリーに出てきません。
以下の記事で、同じ内容が議論されていますが、ejectキーはスキャンコードよりも深い(システムレベル?)で
組み込まれているので、拾うことができないようです。
https://autohotkey.com/board/topic/12785-support-for-apple-keyboard-eject-key/
上記事中の「 I used this post to turn the eject and fn key into a special key:~~~」のコメントには
できそうなことは書いてありますが、別のソフトの適用が必要でAutoHotkeyだけでは実現できなさそうです。
先のzipファイルのリンクが切れていて試せませんでした。
また、この有線のApple keyboard用ではありませんが、BluetoothのApple Wireless Keyboard用に
Apple Keyboar Bridge というソフトがあります。
https://github.com/andantissimo/Apple-Keyboard-Bridge
私はApple Wireless Keyboardも持っていて、このソフトも使っていますが、ejectキーをdeleteに割り当てることができます。
ですのでソースコードをみてやり方を探ってみたのですが、私にはわかりませんでした。
思いつきですが、何らかの方法でApple Keyboard Bridgeを起動し、ejectキーを未使用キー(例えばF15など)に割り当て、
AutoHotkeyでF15をdeleteに割り当てれば実現できそうなきもします。
(しかし、そもそもApple Keyboard BridgeはApple WIreless Keyboardを検出しないと起動しないんですけどね)
また、趣旨とは外れてしまいますが、
Fnキー+deleteキーでdelete動作をさせる等にすれば、記事中のアクティブウィンドウのスクショの例のように
複合キーの動作として実現できそうです。
これは未確認ですので、時間があるときにやってみます(^^)
こんなに丁寧なコメントを頂けると思っていなかったので
大変うれしいです。
(返信諦めてて、確認遅くなりました)
最適なキーボードとマウスを求めて、毎年散財しています。
EJECTキーは使えませんが、現在はApple Magic Keyboard(テンキー)に
落ち着いています。
CNC切削による精度の高さと、キーストロークの浅さに慣れた今、
キーボードの旅は終わりを迎えたのではと思ってしまいます。
AutoHotKeyはインストーラーしかないと思っていたので、
(できるだけインストールしたくない派)
ZIPでの配布をこうさんの記事で知り、現在はAutoHotKeyを使用しています。
AutoHotKey前は、Apple Keyboar Bridgeを使用して
かな、英数を認識させていました。
AKBは、Magic Keyboard(テンキー)に対応しておらず
通常は起動しないのですが、別途対応しているキーボードを
BT接続しておけば、USB接続のMagic Keyboard(テンキー)を誤認して
使えるのですが、Ejectは設定しても認識しません…。
「かえうち」というドングルみたいなやつでも認識できないようです。
分解してEjectを物理的に別のキーに置き換えようとも考えたのですが、
現在は荒業で、隣のF12とEjectをブリッジさせる薄板を3Dプリント→
両面テープで一体化→F12にDeleteを割り当ててます。
高さは少し変わりますが…。
もし、ソフト的に解決する方法が見つかったら買います(笑)
話は脱線しますが、今私が抱えている悩みは
iOSとAndroidで同じQWERTYレイアウトのキーボードアプリが
ないことです…。メーカー同じでもかなり違うんですよね…。
ブログをやっている主旨が果されたようで嬉しいです(^^)
ありがとうございます。
キーボードの旅、非常にしっくりきます笑
私も、いろいろなキーボードに浮気しては、このappleのキーボードに戻ってきています。
いろいろ試されているようで恐れ入ります。知らない情報もかなりあったので、大変勉強になりました。
ありがとうございます。
その後調べてみましたが、AHKHID を使えばejectにdeleteを割り当てることは実現できそうです。
https://github.com/jleb/AHKHID
私は途中で挫折しかけています・・・
3Dプリンタを使われるほどの技量をお持ちなので、試されてはいかがでしょうか(^^)?
iOSとAndroidのレイアウトの件は、複数デバイスを使っている人間からすると厄介な問題ですね。ミスタイプします。
私は割り切って気持ちを切り替えるか、すべてのデバイスでApple Wireless Keyboardを使うかですね(少々不便はありますが)
AHKHID拝見しました。
私には難関すぎます…。押出形状の3Dデータ作成は技量いらないです!
もし実現できたら、かなりの人気記事になると思いますので
是非、ブログ期待しています!!!
なるほど!ちょっと時間がかかると思いますが挑戦してできたら記事にしますね(^^)