eki_docomokiraiの音楽制作ブログ

作編曲家のえきです。DTM/音楽制作で役立つTIPSを書いています。

(備忘録)Autohotkey備忘録

キースワップツール「Autohotkey」の備忘録。 

後日、不安定なので使用を停止しました。

(2021年9月8日更新。サンプルコードを文末に掲載。)

 

■この記事は個人的なメモです。

使い物になりません。他のサイトを探すことをおすすめします。

■はじめに

Autohotkeyは過剰な改造ツールです

わからないならやめましょう。

ちょっとした改造だけなら、もっと簡易的に導入できるツールがいくらでもあります。別のツールを探しましょう。

1つのキーを1つのキー入力に入れ替えたいだけならChgkeyを使うことをオススメします。

forest.watch.impress.co.jp

・(後日談)落ちる、不安定なツールなので使用を停止しました。

たとえばこういう簡単なスクリプトを実行してみる。

Pause::!F4

これを数回使っていると落ちる。

この程度で落ちる時点で信頼性は低いものだと分かりました。

 

なお、上のスクリプトの意味はこう。

  • Pause
    Pauseキーを、
  • ::
    左のキー入力を右の結果に
  • !F4
    「Alt+F4」の意味
    「!」は複数キー同時押しの時の「Alt」の意味。

これだけの基本的なものでさえ安定しないです。

詳しい人に言わせれば「複雑なコードを書けば安定して動く」と言われるのでしょうが、そこまで習得する気になれませんでした。

 

■入手先

www.autohotkey.com

インストールに関する疑問はこちらで。

よくある質問と回答 - AutoHotkey Wiki

この程度を読むのが面倒なら、もっと簡易的なツールをまず試しましょう。 

・本当に導入する必要があるのか?

Autohotkeyスクリプトを作るのが非常に面倒なので、簡易的なキースワップツールの方が良いかもね。

たとえばChangekeyで十分じゃないか?と考えるべき

forest.watch.impress.co.jp

CapsをEnterにしたいとか、その程度のことならこっちで十分。

かんたんなツールを使った単一のキー入れ替えでは満足できず、無茶なことをやりたい場合に導入するのがAutohotkeyだと思っておけばOK。 

私自身、すでに他のツールを常用していました。

 

スクリプトファイルの作り方

適当な.txtファイルを作り、編集したら拡張子を.ahkに変える。で、自動で関連付けされるのでダブルクリックでOK。

・Autohotkei起動に関する誤解

こいつを起動しても意味は無い。

f:id:eki_docomokirai:20200725103114p:plain

スクリプトの作り方が英語で書かれている「説明書」です。

・手っ取り早い編集方法

いちいち拡張子を.txtに戻さなくてもOK。

f:id:eki_docomokirai:20200725102734p:plain

コメントアウトの記述

スクリプト内にメモをしたい時に使う。

http://ahkwiki.net/-CommentFlag

#CommentFlag ここはコメントです

という感じに記述する。

f:id:eki_docomokirai:20200725102545p:plain

テスト時や、試作したものをコメント行に残しておくと後々便利かもね。一度作ったら頻繁に直すものでもないので。

■自動実行する(Windows、スタートアップ)

Autohotkeyの定義ファイルはそのままだとPC起動のたびに実行しなければいけないので、非常に不便。

定義ファイルを適当な場所に保管した上で、そのショートカットを「スタートアップ」に手動で登録すれば良い。

 "C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

f:id:eki_docomokirai:20200725101402p:plain

(Appdataフォルダは隠しフォルダなので、表示方法がわからない人はネット検索で調べてね。)

Autohotkey自体、つまりこいつ

f:id:eki_docomokirai:20200725103114p:plain

を実行する必要は無い。

 

心配なら適当なスクリプトを作って、PCを再起動して挙動をテストしてみれば良い。

■Pauseは実用的に改造できない

キー変更ツールでまずやりたくなるのが、無意味なキーの有効活用。つまり、Pauseお前のことだ。

でも、結論だけ言うとPauseは思ったように改造できません

 

AutohotkeyでPauseのアサイン変更はできる。

ただし、Pauseはオートリピートが絶対にできない。

Pause・Breakキー ‐ 通信用語の基礎知識

Pause・Breakキーはキーを押しっぱなしにした時の動作、オートリピートの対象外である。

キーボードは、キーが押されるとメイクコード、離されるとブレイクコードと呼ばれるスキャンコードを発行するが、Pause・Breakキーは押された瞬間にメイクとブレイクが発行される。従ってこのキーについては、離されたタイミングを知ることは出来ない。

Windoesなどではキーコードを変更することでキーの機能を変えるソフトウェアがあるが、Pause・Breakキーだけはこのような仕様のため、キーの機能を変えることが出来ない。

よって、Pauseに「Shift」を仕込み、「Shift+a」をしようとしても、同時に押していることにならないので事実上使えない。

実験。AutohotkeyでPauseをShiftに変更する。

f:id:eki_docomokirai:20200725085119p:plain

試しにaとPauseを同時になるように連打しまくってみる。

f:id:eki_docomokirai:20200725085259p:plain

この程度の頻度でしか「完全同時押し」は認識されなかった。 

・ギリギリ実用的なPause/Breakの用例は「強制終了」くらいかも

現時点でPauseで実行できる実用的なキースワップ変更先はAlt+F4(強制終了)思い浮かばない。

f:id:eki_docomokirai:20200725090522p:plain

「!」はAltの意味

幸いなことにオートリピートが絶対に働かないのでちょうどよい。

 

他にあるとしたら、Shift+Ctrl+Escによるタスクマネージャーを開く操作かなぁ。

これは

Pause::^+Esc

を実行させれば良い。

なお、^はCtrlキーの意味。+はShiftキーの意味。

・13番目以降のファンクションキーの実装

せっかくなので別のテスト結果もメモしておく。

AutohotkeyでPauseに「F13」を割り当ててみる。

f:id:eki_docomokirai:20200725085821p:plain

ファンクションキー13って何よ?と思うかもしれない。

 

4Gamer Keyboard CheckerではF13を確認できない、

f:id:eki_docomokirai:20200725085927p:plain

ので、Cubaseで確認。

f:id:eki_docomokirai:20200725085833p:plain

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

 

 

 

キー一覧

キーリスト - AutoHotkey Wiki

キーリスト - AutoHotkeyJp(Googlesiteの方)

 

 

サンプルコード

サンプルコード集 - AutoHotkey Wiki

 

■確実に動く作例

/*

PauseキーをAlt+F4にする

*/

Pause::!F4

 

 

■安定しない作例とメモ

1つのスクリプトの中に複数の命令を入れるのが作法らしい。

複数の.ahkスクリプトを実行するとバグって片方のファイルが消滅した。

--------------------

ここを参照して改造した。 

http://ahkwiki.net/Examples#.E8.A4.87.E9.9B.91.E3.81.AA.E6.93.8D.E4.BD.9C.E3.82.921.E3.82.AD.E3.83.BC.E3.81.AB.E5.89.B2.E3.82.8A.E5.BD.93.E3.81.A6

改行位置、スペースは注意を要する。

 

が、何度か使っているとスクリプトファイルが消滅して無効化する、という謎現象に見舞われる。安定しない。

/*

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は『タスクバーの左端にあるアプリを起動』の基本ショートカット。)

f:id:eki_docomokirai:20210706140841p:plain

--------------------

Process,~からの行は、「すでに起動している常駐アプリケーションをアクティブにする」という命令。

常駐ではないアプリを新規に起動したいなら、末尾の太字「Run,~」だけで良い。はず。

--------------------

Win+数字はいくつかの瞬発的に必要になるアプリを登録しておくと便利。多すぎるとクリックした方が速いので適度に。

www.yrl.com

 

ScrollLockを押すと「Win+1」が実行され、マウス設定ツールが起動した。

f:id:eki_docomokirai:20210706141201p:plain

--------------------

もちろん左下の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ではミキサーコンソールを「常に手前」ができなくなっています。それを解消できるかと思った、が、ダメ!!!

 

・これもダメだった

www.zacoding.com

 

© docomokirai 2017 無断転載、商用利用ならびに「音響DTM系のアフィリエイト広告を主目的としたウェブ活動」での利用を禁ず
レッスン案内はこちら。  寄付はこちら