キースワップツール「Autohotkey」の備忘録。
後日、不安定なので使用を停止しました。
(2021年9月8日更新。サンプルコードを文末に掲載。)
- ■この記事は個人的なメモです。
- ■はじめに
- ■入手先
- ■スクリプトファイルの作り方
- ■コメントアウトの記述
- ■自動実行する(Windows、スタートアップ)
- ■Pauseは実用的に改造できない
- ■個人的に役に立った資料ページ
- ■確実に動く作例
- ■安定しない作例とメモ
- ■CubaseのMixer Consoleを常時手前にすることはできなかった
■この記事は個人的なメモです。
使い物になりません。他のサイトを探すことをおすすめします。
■はじめに
Autohotkeyは過剰な改造ツールです。
わからないならやめましょう。
ちょっとした改造だけなら、もっと簡易的に導入できるツールがいくらでもあります。別のツールを探しましょう。
1つのキーを1つのキー入力に入れ替えたいだけならChgkeyを使うことをオススメします。
・(後日談)落ちる、不安定なツールなので使用を停止しました。
たとえばこういう簡単なスクリプトを実行してみる。
Pause::!F4
これを数回使っていると落ちる。
この程度で落ちる時点で信頼性は低いものだと分かりました。
なお、上のスクリプトの意味はこう。
- Pause
Pauseキーを、 - ::
左のキー入力を右の結果に - !F4
「Alt+F4」の意味
「!」は複数キー同時押しの時の「Alt」の意味。
これだけの基本的なものでさえ安定しないです。
詳しい人に言わせれば「複雑なコードを書けば安定して動く」と言われるのでしょうが、そこまで習得する気になれませんでした。
■入手先
インストールに関する疑問はこちらで。
この程度を読むのが面倒なら、もっと簡易的なツールをまず試しましょう。
・本当に導入する必要があるのか?
Autohotkeyはスクリプトを作るのが非常に面倒なので、簡易的なキースワップツールの方が良いかもね。
たとえばChangekeyで十分じゃないか?と考えるべき。
CapsをEnterにしたいとか、その程度のことならこっちで十分。
かんたんなツールを使った単一のキー入れ替えでは満足できず、無茶なことをやりたい場合に導入するのがAutohotkeyだと思っておけばOK。
私自身、すでに他のツールを常用していました。
■スクリプトファイルの作り方
適当な.txtファイルを作り、編集したら拡張子を.ahkに変える。で、自動で関連付けされるのでダブルクリックでOK。
・Autohotkei起動に関する誤解
こいつを起動しても意味は無い。
スクリプトの作り方が英語で書かれている「説明書」です。
・手っ取り早い編集方法
いちいち拡張子を.txtに戻さなくてもOK。
■コメントアウトの記述
スクリプト内にメモをしたい時に使う。
http://ahkwiki.net/-CommentFlag
#CommentFlag ここはコメントです
という感じに記述する。
テスト時や、試作したものをコメント行に残しておくと後々便利かもね。一度作ったら頻繁に直すものでもないので。
■自動実行する(Windows、スタートアップ)
Autohotkeyの定義ファイルはそのままだとPC起動のたびに実行しなければいけないので、非常に不便。
定義ファイルを適当な場所に保管した上で、そのショートカットを「スタートアップ」に手動で登録すれば良い。
"C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
(Appdataフォルダは隠しフォルダなので、表示方法がわからない人はネット検索で調べてね。)
Autohotkey自体、つまりこいつ
を実行する必要は無い。
心配なら適当なスクリプトを作って、PCを再起動して挙動をテストしてみれば良い。
■Pauseは実用的に改造できない
キー変更ツールでまずやりたくなるのが、無意味なキーの有効活用。つまり、Pauseお前のことだ。
でも、結論だけ言うとPauseは思ったように改造できません。
AutohotkeyでPauseのアサイン変更はできる。
ただし、Pauseはオートリピートが絶対にできない。
Pause・Breakキーはキーを押しっぱなしにした時の動作、オートリピートの対象外である。
キーボードは、キーが押されるとメイクコード、離されるとブレイクコードと呼ばれるスキャンコードを発行するが、Pause・Breakキーは押された瞬間にメイクとブレイクが発行される。従ってこのキーについては、離されたタイミングを知ることは出来ない。
Windoesなどではキーコードを変更することでキーの機能を変えるソフトウェアがあるが、Pause・Breakキーだけはこのような仕様のため、キーの機能を変えることが出来ない。
よって、Pauseに「Shift」を仕込み、「Shift+a」をしようとしても、同時に押していることにならないので事実上使えない。
実験。AutohotkeyでPauseをShiftに変更する。
試しにaとPauseを同時になるように連打しまくってみる。
この程度の頻度でしか「完全同時押し」は認識されなかった。
・ギリギリ実用的なPause/Breakの用例は「強制終了」くらいかも
現時点でPauseで実行できる実用的なキースワップ変更先はAlt+F4(強制終了)思い浮かばない。
「!」はAltの意味。
幸いなことにオートリピートが絶対に働かないのでちょうどよい。
他にあるとしたら、Shift+Ctrl+Escによるタスクマネージャーを開く操作かなぁ。
これは
Pause::^+Esc
を実行させれば良い。
なお、^はCtrlキーの意味。+はShiftキーの意味。
・13番目以降のファンクションキーの実装
せっかくなので別のテスト結果もメモしておく。
AutohotkeyでPauseに「F13」を割り当ててみる。
ファンクションキー13って何よ?と思うかもしれない。
4Gamer Keyboard CheckerではF13を確認できない、
ので、Cubaseで確認。
PauseにF13を割り当てることは可能で、ということです。
Cubaseでは無数のショートカットキーを自由に登録できるので、独立したF13を使用可能にできるメリットは結構大きい。
ただし、Pauseとモディファイアキーとの組み合わせはいくつかが無効です。
可能、F13+Shift、F13+Alt、F13+Shit+Alt
不可、F13+Ctrl、及びCtrl+他の同時入力
Ctrlが絡むとNGでした。
ただし、言うまでもなく、これは私の環境での結果です。あなたの環境では可能かもしれません。キーボードのモデルやOSに依存します。
キー入力に関する問題を扱った関連記事を貼っておきます。
eki-docomokirai.hatenablog.com
貼りましたが、私はキーボードやOSの専門家として書いていません。あくまでも音楽屋として必要なレベルの話しか書いていません。もっち知りたい人は徹底的に勉強してください。ガンバレ!
■個人的に役に立った資料ページ
実例がいくつか書かれているサイト、その1
快適キーボード操作のためのキーカスタマイズ 〜Windows編〜 | さくらのナレッジ
^ Ctrlキー
! Altキー
+ Shiftキー
# Winキー
これらモディファイアキーへのアサインはが最初は全然分からなかった。
実例があるサイト、その2
https://kankodori-blog.com/?p=536#i-2
キー一覧
キーリスト - AutoHotkeyJp(Googlesiteの方)
サンプルコード
■確実に動く作例
/*
PauseキーをAlt+F4にする
*/
Pause::!F4
■安定しない作例とメモ
1つのスクリプトの中に複数の命令を入れるのが作法らしい。
複数の.ahkスクリプトを実行するとバグって片方のファイルが消滅した。
--------------------
ここを参照して改造した。
改行位置、スペースは注意を要する。
が、何度か使っているとスクリプトファイルが消滅して無効化する、という謎現象に見舞われる。安定しない。
/*
PauseキーをAlt+F4にする
*/
Pause::!F4
ScrollLock::#1
Process,Exist,ElcMouseApl.exe
If ErrorLevel <> 0
WinActivate,ahk_pid %ErrorLevel%
Else
Run,ElcMouseApl.exe
Return
1つ目の内容は、Breakを「Alt+F4」、強制終了にする。
2つ目の内容はScrollキーを「Win」+「1」にする。
(Win+1は『タスクバーの左端に#Scrollを「Win」+「1」にする。Win+1は『タスクバーの左端にあるアプリを起動』の基本ショートカット。)
--------------------
Process,~からの行は、「すでに起動している常駐アプリケーションをアクティブにする」という命令。
常駐ではないアプリを新規に起動したいなら、末尾の太字「Run,~」だけで良い。はず。
--------------------
Win+数字はいくつかの瞬発的に必要になるアプリを登録しておくと便利。多すぎるとクリックした方が速いので適度に。
ScrollLockを押すと「Win+1」が実行され、マウス設定ツールが起動した。
--------------------
もちろん左下のWinキーがある人ならそれを使った方が良い。しかし、私の場合はCubaseの操作を最優先しているので、左下のWinキーは別の操作に変更してある。
なおかつテンキー付きキーボードを使っているので、死にキー2つを有効利用したかった。
--------------------
上のソースをちょっと変更すれば、あなたに合ったカスタマイズが色々できるはず。
事実上の死にキーであるScrollとBreakをなにかの専用キーにできる。
Autohotkeyではやろうと思えば恐ろしく高度なことができるらしいが、この程度の導入だけでも確実にワンランク快適になる。
--------------------
仕様をちょこちょこ見た限りだと、AHKのバージョンやOSによってソースが若干変わってくるらしい。よほどの中毒ユーザーでもない限りは、導入は軽度で良いんじゃないだろうかと思う。
--------------------
ただ、CubaseではAlt+F4
■CubaseのMixer Consoleを常時手前にすることはできなかった
・微妙に使えないサンプル
ここを参考にした(https://take-web.com/auto/autohotkey/sample-myuse/)
Pause:: #t
{
WinSet, AlwaysOnTop, toggle, A
}
return
Pauseを押すと「#t」=「Win+T」を実行し、ウィンドウを手前にする。それをトグルで交互にオンオフする。
という狙いだったんだけど、Cubase9.5のミキサーではうまく行かず。
昔からのCubaseユーザーは御存知の通り、新しいCubaseではミキサーコンソールを「常に手前」ができなくなっています。それを解消できるかと思った、が、ダメ!!!
・これもダメだった