Win10 F1キー+指定キーでアプリごとにショートカットキー類を設定可能な Autoit スクリプト
記事の執筆に AI な類は使用しておりません。
【 目次 】
はじめにダウンロード
下準備
使用方法
ショートカットの設定
呼び出しキーの変更 / F1~F12 以外への変更はオススメいたしません
登録しても動かない
ウィンドウが怪しい動きをしている?という疑問
動画
おすすめリンク/関連記事
はじめに
Windows10 を使用していて不満な事が少々。それは完全にショートカットキーが使えない事。
これはデフォルトで特定の動作が決まっているの意味。
CTRL+C を押せばコピーするという類が変更できない。
なので、F1キーを呼び出しキーとして機能させ
F1キー+何かのキーで自由なショートカットキーを実現しよう。
その観点から開発が始まり、完成したので置いておきます。
宜しければどうぞ。
独自機能としまして
とあるアプリのみのキー指定や全体での指定の自由や
特定のキーを押すはもちろん、指定のウィンドウをアクティブにしたり
少々の機能が追加してあります。
設定は複雑化しますが
同じ類をやろうとすれば可能な AutoHotkey は難しくて使えなくても
このスクリプトなら?動かせるかも知れません。
AutoHotkey と比べると機能は劣化なので
比べてもらっては困るという類は自覚をしております。
生暖かい目でご観覧ください。
【 目次へ戻る 】
ダウンロード
F1キー+何かのキーで自由にショートカットキーを送信可能なAutoit スクリプト AppHotKey は以下にてダウンロード可能です。
AppHotKey v1.03 ( 2022/11/18 )
F1キー+指定キーで色々な事が可能な Autoit スクリプト
MD5:612C8FC36AE22F57C7DD28F5377298FC
-----
v1.03
FileOpen / GetTitle / ClipWrite / Write / FileClose / TimeWrite / TimeWrite2 の追加
主に指定のファイルへ書き込むための命令追加です。
初期出力ファイルにて Firefox で日時+タブ名+URLの取得をし
指定テキストへ出力の例があります。
-----
v1.02a
説明書の 呼び出しキーを F1 から変更する方法の一部が
書き換える方法を知っている前提で書かれていて
読み手に説明が理解しにくいを改善しました。
説明書のみなのでスクリプトに変更はありません。
-----
v1.02
ActLoad 時のアクティブ時に無限ループしてしまうを修正
キーボードを無効にする命令が逆に設定してある部分を修正
v1.01 で ActLoad を使用するとキーボードが使えない状態で無限ループするので
その場合は CTRL+ALT+DELキー同時押しでタスクマネージャーを呼び出す画面を表示させ
デスクトップへ戻ればキーボードが使えるようになります。
スクリプトを速やかに終了させ v1.02 へバージョンアップしてください。
ご迷惑をおかけしております、バグの確認回数を増やし
同じ類の失敗を起こさないよう、少なくするよう努力いたします。
-----
v1.01
ActSave / ActLoad 命令の追加
-----
*** ご注意 ***
ブログに書いてあることや
ブログで配布しているアプリを使用する場合は
自己責任にてお願いいたします。
このブログの管理者 気ままさん は
ブログに書いてあること、ブログで配布している
アプリを使用して発生した
すべての事柄において責任を負いません。
これに同意をいただけない方へのご使用は許可いたしかねます。
【 目次へ戻る 】
下準備
この記事のスクリプト AppHotKey.au3 はAutoit にて動きますのでAutoit が必要です。
以下にてダウンロードと .au3 の拡張子を関連付けしてください。
ファイルはダウンロードと解凍の時間を除外すれば
関連付けであれば1分、読みながらでも 10分 あれば可能です。
AutoIt Windowsの操作を自動化 使用方法/日本語化
関連付けをして AppHotKey.au3 を実行すると、
初回起動だけ設定ファイルがメモ帳で開きスクリプトが閉じます。
スクリプトが起動したかの確認のために設定のメモ帳は開くので
そのまま閉じてもう一度スクリプトを実行してください。
トレイアイコンが常駐すれば起動しております。
【 目次へ戻る 】
使用方法
AppHotKey.au3 が常駐している状態でデフォルトではF1キーを押しながら何かのキーで指定した動作を行います。
F1キーを長押しするとツールチップにて キー入力待機:との文字が出ますので
F1キーを押したまま他のキーを長押しすると キー入力待機:○○ と
押した文字が表示されたらキーを離しますと、関連した作業を行います。
初期設定で Nキー にメモ帳を開く設定を入れておきましたので
F1キー を押しながら Nキー を押して離すと メモ帳で C:\AppHotKey_test.txt を開きます。
この行の設定は以下です。
*:::N:::Run:::Notepad C:\AppHotKey_test.txt
【 目次へ戻る 】
ショートカットの設定
トレイアイコンの 右クリック → 設定を開く よりショートカットの設定が可能です。書式はかきこむ順番が決まっており ::: で区切ります。
大文字小文字は別の文字と認識されるので注意してください。
例としましては以下のように
notepad.exe:::Z:::Say:::Hallo!!
・どのアプリでショートカットキーを認識させるか
・どのキーか
・どの行動をするか
・どの○○をするか
上では notepad.exe ( メモ帳 ) で Zキー で呼び出した場合に文字出力の Say を指定し
Hallo!! の文字を打ち込む、との意味になります。
長くなりますが上から説明をします。
□どのアプリでショートカットキーを認識させるか
アプリ名を指定します、拡張子まで含めてください。
全てのアプリで指定する場合は * を使用します。
□どのキーか
AppHotKey.au3 の中にある Func Key_chk_02() より下に書いてあるキーが使えます。
大文字小文字は区別され、完全に一致しないと認識しません。
例としてはこの行があるので左の _IsPressed("01") の 01 が 左マウスクリック の
認識番号で Lmouse と名付けています、使うのは Lmouse の方を使います。
上で説明したメモ帳で開くの例で書き込むのならこうなります。
;F1キーと左マウスを同時押しして離す
*:::Lmouse:::Run:::Notepad C:\AppHotKey_test.txt
以下は使用できると思われるキーですが
Shift / Ctrl / Alt / Win の4つを使用する場合は
必ず Shift / Ctrl / Alt / Win の順で書き込みます。
;F1キーと Aキー と Shift を同時押しして離す
*:::A+Shift:::Run:::Notepad C:\AppHotKey_test.txt
;F1キーと Aキー と Shift Ctrl Alt Win を同時押しして離す
*:::A+Shift+Ctrl+Alt+Win:::Run:::Notepad C:\AppHotKey_test.txt
+Shift ;先頭の + も必要です
+Ctrl ;先頭の + も必要です
+Alt ;先頭の + も必要です
+Win ;先頭の + も必要です
Lmouse ;左マウスクリック
Rmouse ;右マウスクリック
Mmouse ;マウスホイールクリック
Back
Tab
Enter
Pause
Space
Pageup
Pagedown
End
Home
Left ;矢印 左キー
Up ;矢印 上キー
Right ;矢印 右キー
Down ;矢印 下キー
Printscreen ;ペイントスクリーン
Ins
Del
0 から 9
A から Z
Num0 から Num9
Num*
Num+
Num-
Num.
Num/
F1 から F12
;
=
,
-
.
/
`
[
\
]
□どの行動をするか / どの○○をするか
指定のショートカットキーが押されたらどう行動をするか。
以下での Say と Hallo!! の部分になります。
notepad.exe:::Z:::Say:::Hallo!!
○Send
キーボードを実際に押したようにキーを送信します。
;メモ帳で F1キー と Zキー同時押しで Test の文字を打ち込む
notepad.exe:::Z:::Send:::Test
Shift / Ctrl / Alt を同時押ししたい場合は
Shift+A を押す +a
Ctrl +A を押す ^a
Alt +A を押す !a
;メモ帳で F1キー と Zキー同時押しで CTRL+A を送信
notepad.exe:::Z:::Send:::^a
F1 や Enter 類は {F1} {enter} となります。
;メモ帳で F1キー と Zキー同時押しで Enter キー を送信
notepad.exe:::Z:::Send:::{enter}
複数も送信できます。
;メモ帳で F1キー と Zキー同時押しで Enter キー を 5回送信
notepad.exe:::Z:::Send:::{enter}{enter}{enter}{enter}{enter}
詳しくは以下の URL にて
Function Send
○Say
書き込んだ文字をクリップボードへ送り CTRL+V キーで貼り付けます
;メモ帳で呼び出しキー+Zキー同時押しで Hallo!! の文字を貼り付け
notepad.exe:::Z:::Say:::Hallo!!
○Wait
指定秒、一時停止します
;メモ帳で呼び出しキー+Zキー同時押しで2秒停止 ( 1000 = 1秒 )
notepad.exe:::Z:::Wait:::2000
○Run
アプリ類を実行します
メモ帳はパスが通っているのでアプリのフルパスではなく名前のみで呼び出せますが
通常はこの様にフルパスで呼び出します。
notepad.exe:::Z:::Run:::C:\Windows\System32\notepad.exe
;メモ帳で呼び出しキー+Zキー同時押しでメモ帳を起動する
notepad.exe:::Z:::Run:::Notepad
;メモ帳で呼び出しキー+Zキー同時押しでメモ帳にて C:\AppHotKey_test.txt を起動する
notepad.exe:::Z:::Run:::Notepad C:\AppHotKey_test.txt
○Run2
ファイルを関連付けで起動します
;どのアプリでも呼び出しキー+Oキー同時押しで拡張子の関連付けアプリで
;C:\AppHotKey_test.txt を起動する
*:::O:::Run2:::C:\AppHotKey_test.txt
○RunWait
アプリ類を実行し、そのアプリが閉じるまで スクリプトは一時停止します
;どのアプリでも呼び出しキー+Eキー同時押しで C:\ を開く、閉じるまでスクリプトは停止
*:::E:::RunWait:::C:\Windows\explorer.exe C:\
○Act
指定した名前を含むウィンドウを最前列にします
仮想デスクトップ間でも移動は可能です
;どのアプリでも呼び出しキー+Aキー同時押しで指定文字が含まれているウィンドウを最前列に
*:::A:::Act:::メモ帳
○Move
マウスの座標を移動します
;どのアプリでも呼び出しキー+Mキー同時押しでマウス座標を X=100 / Y=200 に移動
*:::M:::Move:::100:::200
注意:
マウスの座標移動系命令は Windows のバージョンにて
移動できないバグがあります、これは Windows の問題であり
Autoit や スクリプトの問題ではありません、OS 依存の問題です。
具体的には Win11 2021 ~ 2022/07/04 までに公開されている物は動かないを確認済みです。
ただ、確認した物は VMware での仮想環境であり実際の環境でどうかは未確認。
見本で動けば動くし動かなければ動かないとお考えください。
○LClick
指定座標で左クリックします
;どのアプリでも呼び出しキー+C+Shift キー同時押しでマウス座標を X=300 / Y=400 に移動し左クリックを1回押す
*:::C+Shift:::LClick:::300:::400:::1
;最後のクリック回数を2にする事により左ダブルクリックになります
*:::C+Shift:::LClick:::300:::400:::2
○RClick
指定座標で右クリックします
;どのアプリでも呼び出しキー+C+Ctrl キー同時押しでマウス座標を X=200 / Y=300 に移動し右クリックを1回押す
*:::C+Ctrl:::RClick:::200:::300:::1
○TooltipOff
ツールチップを消します、スクリーンキャプチャーの前に実行する類です
;どのアプリでも呼び出しキー+Tキー同時押しでツールチップを消す
*:::T:::Tooltip
○ActSave
現在のアクティブウィンドウを記憶
;どのアプリでも呼び出しキー+Sキー同時押しで現在のアクティブウィンドウを記憶
*:::S:::ActSave
○ActLoad
記憶したウィンドウをアクティブにする
;どのアプリでも呼び出しキー+Sキー同時押しで記憶したウィンドウをアクティブにする
;ActSave を先に呼び出さないと意味はありません
*:::S:::ActLoad
○GetTitle
ウィンドウタイトル名をクリップボードへ
;Firefox起動中に呼び出しキー+Fキー同時押しでウィンドウタイトル名をクリップボードへ
Firefox.exe:::F:::GetTitle
;----- ファイルへ書き込む場合
○FileOpen
テキストファイルに書き込む準備 / 書き込む前に必ず指定 / 書き終わったら FileClose で閉じる
;Firefox起動中に呼び出しキー+Fキー同時押しで指定ファイルの書き込み準備
Firefox.exe:::F:::FileOpen:::C:\AppHotKey_test.txt
○TimeWrite
指定ファイルへ時間を書き込む
;Firefox起動中に呼び出しキー+Fキー同時押しで指定ファイルへ時間を書き込む
Firefox.exe:::F:::TimeWrite
○TimeWrite2
指定ファイルへ日時を書き込む
;Firefox起動中に呼び出しキー+Fキー同時押しで日時を書き込む
Firefox.exe:::F:::TimeWrite2
○ClipWrite
クリップボードの内容を指定ファイルへ書き込む
;Firefox起動中に呼び出しキー+Fキー同時押しでクリップボードの内容を指定ファイルへ書き込む
Firefox.exe:::F:::ClipWrite
○Write
指定ファイルへ文字を書き込む
;Firefox起動中に呼び出しキー+Fキー同時押しで指定ファイルへ改行を書き込む
Firefox.exe:::F:::Write
;Firefox起動中に呼び出しキー+Fキー同時押しで指定ファイルへ指定文字を書き込む
Firefox.exe:::F:::Write:::Firefox で開いているタイトルを書き込みました。
○FileClose
指定ファイルの書き込み終了
;Firefox起動中に呼び出しキー+Fキー同時押しで指定ファイルの書き込み終了
Firefox.exe:::F:::FileClose
【 目次へ戻る 】
呼び出しキーの変更 / F1~F12 以外への変更はオススメいたしません
デフォルトで呼び出しキーは F1キーですが変更は可能です。AppHotKey.au3 をメモ帳などで開いてください。
以下へ飛び、どのキーが設定可能か確認してください。
Function Send
※CAPSLOCK は設定できません、NumLock は登録できますが値が ON / OFF してしまうのでオススメはしません
上に載っているキーならそのまま以下に書き込みます、前者の {F1} を書き換えます。
HotKeySet("{F1}", "Key_01")
F12 の例とすると
HotKeySet("{F12}", "Key_01")
次は呼び出すショートカットキー指定番号の以下を書き換えます。
$key_no = 70
AppHotKey.au3 のスクリプト内を 「 Func Key_chk_02() 」 で検索します。
If _IsPressed("ここに英数字") Then ~ があるので上で設定したキーと同じキーを探してください
もしくは 以下の URL にて F12 key を探してください
Function _IsPressed
7B F12 key があるので 設定値は 7B で以下の $key_no を 7B に設定してください
$key_no = 7B
最後に、今まで使用していたキーを使えるようにします
デフォルトで F1 キーを使用していて他のキーに指定すると、F1キーの入力を受け付けないので
AppHotKey.au3 のスクリプト内を 「 Func Key_chk_02() 」 で検索します。
下にスクロールしていくと先頭に ; とついている F1 の設定値があるので、先頭の ; を削除してください。
If _IsPressed("70") Then $key1 = "F1"
同じく設定したキーを受け付けなくしなくてはならないので
設定したキーの先頭に ; を付加してください、上で F12 を指定したので F12 をの意味です。
;If _IsPressed("7B") Then $key1 = "F12"
ただし、14 と 90 の値のものは先頭に ; を付加しないでください。
ほぼ使用しないキーを呼び出しに使用するのであれば CAPS LOCK / NumLock ですが、
これらは動きが特殊なので設定しても動作が面倒なのでオススメしません。
ヘルプファイルを呼び出す事が多い F1 が理想的なのではないか?と考えます。
【 目次へ戻る 】
登録しても動かない
大文字、小文字で区別していますので呼び出しキー、下でいう Z キーの指定が 小文字の z であると動きません。notepad.exe:::Z:::Say:::Hallo!!
同じく Say / Wait / Run な類の命令形も say / wait / run で一致しないと動きません。
エラーが出る場合は、区切りの ::: がキーボードで言う 「 け 」 のキーが3つないと
状況によりエラーが発生します。
設定ファイルを一度どこかに非難してから消し、初期設定ファイルでもエラーが出る場合は
スクリプトのどこかが悪い、動けば書き換えた設定がどちらかおかしいです。
\Setting\AppHotKey\AppHotKey.txt
もしくは、特殊な書き方をしないと動作しない、設定できない
押せないキーが存在します。
半角・全角キー、ひらがな・かなキー、CapsLockキー など
特殊なキーや英字キーボードにないキー類です。
【 目次へ戻る 】
ウィンドウが怪しい動きをしている?という疑問
呼び出しキー F1 を押すとアクティブになっているウィンドウが非アクティブになります。操作が終わってからアクティブになるので、この意味は何?となりますが
これは、例えばメモ帳などで何かのキーを押す、例えば Aキー を押すと A の文字が打ち込まれてしまいます。
このスクリプトで呼び出すたびに使用するキーの文字が打ち込まれてしまっては困るので
このスクリプトにて隠しウィンドウを作成しておき
呼び出しキーが押されたら、その隠しウィンドウにアクティブを移せば
現在のアクティブウィンドウには押したキーが送信されませんので安心です。
その動作をするために呼び出しキーが押されるとアクティブなウィンドウが切り替わるので
気になる人には何この意味不明な動作?という類になりますが
やっている意味は今書きましたとおりです。
【 目次へ戻る 】
動画
ショートカットキーの動作を画像で表現するには困難を極めますので動画を用意いたしました、宜しければご観覧ください。
AppHotKey.au3 v1.00
00:00:00 AppHotKey.au3 を実行、初期設定を出力する
00:00:08 ダイアログを閉じると設定が開く
00:00:15 AppHotKey.au3 を実行し常住させる
00:00:23 常住するとトレイアイコンが表示される
00:00:35 F1+Nキーを押してメモ帳で指定ファイルを開く設定の見本
00:00:41 F1を押すとツールチップが表示されるので呼び出しキーを押す
00:00:49 F1+Nキーを押してメモ帳で指定ファイルを開く
00:01:09 メモ帳で F1+Zキーを押して色々とするの設定の見本
上から順に作業をするので何個も設定を書き込めます
00:01:19 メモ帳をアクティブにして F1+Zキー を押します
00:01:26 Hallo!! とクリップボード経由で貼り付け
00:01:27 Enter キー を押し、2秒待機
00:01:29 CTRL+Aキー を押す ( 文字反転 ) する
00:01:46 F1+Eキーを押してフォルダ C:\ を開く設定の見本
00:01:56 F1+Eキーを押してフォルダ C:\ を開く
00:02:20 F1+Aキーを押して指定文字 ( 例ではメモ帳 ) が含まれているウィンドウを
アクティブ ( 最前列 ) にする設定の見本
00:02:24 適当なフォルダを開きアクティブウィンドウをメモ帳以外へ
00:02:31 F1+Aキーを押して指定文字 ( 例ではメモ帳 ) が含まれているウィンドウを
アクティブ ( 最前列 ) にする
00:02:48 音量の上下をするので音量が下がったどうかの数値を表示すため
音量ミキサーを開く、通常は音量ミキサーを開く必要なし、音量 50
00:02:56 F1+テンキーの+を押して音量を上げる設定の見本
00:03:03 F1+テンキーの+を押して音量を上げる 50+2=52 になりました
00:03:14 F1+テンキーの-を押して音量を下げる設定の見本
00:03:20 F1+テンキーの-を押して音量を下げる 52-2=50 になりました
00:03:35 F1+テンキーの.を押して音量をミュートする設定の見本
00:03:41 F1+テンキーの.を押して音量をミュートする
00:03:56 F1+テンキーの.を押して音量をミュートを解除する
-----
とまあ、こんな感じで
独自のショートカットキーを作成してみようでした。
全体やアプリで切り替えが可能ですので便利と言えば便利かも?
ただ連続して使用するという類では動きが悪いので
( 音量を連続して上下するなど ) それはそれ、という ( 笑
それでは、皆様のキーボード操作が捗りますようにと
お祈りいたしまして、これにて終了です。
以上。
おすすめリンク
・Amazon関連リンク
・AutoIt Windowsの操作を自動化 使用方法/日本語化・AutoIt 特定のユーザーかファイルがあるパソコンのみで動作するEXEを作る。
・指定したウィンドウやアプリが最前列なら指定位置へ移動/サイズ変更/キー送信 autoit3
・秀丸エディタでブログを書き Firefox で内容を確認するマクロと設定 ( 同じ位置に表示 )
・Autoit3 最前列のアプリ名に関連したメモとランチャーを呼び出すスクリプト
・テキストに書き出したURLをWgetで一括ダウンロードする ( Autoit3 スクリプト )
・クリップボードへ送った文字をテキストでデスクトップに保存するスクリプト Autoit3
・ツールチップで指定した時刻をお知らせするタイマー Autoit3 スクリプト
・クリップボードに指定文字が存在するかをツールチップでお知らせするスクリプト Autoit3
・Win10 バッチファイルやショートカットでキー操作や文字を送信する Autoit3 スクリプト
・ATOK付属のイミクルを任意のキーで呼び出すスクリプト ( Autoit3 )
・バッチファイルなどで ALT+F4キー を送信し指定ウィンドウを閉じるスクリプト Autoit3
・指定のキーを押す回数によりIMEの入力状態を
英字/ひらがなモードに切り替えるスクリプト ( Autoit3 )
・クリップボードの名前が一致したファイルを格納フォルダ位置に関係なく開く ( Autoit3 )
・指定キーで選択した2つのウィンドウを横に全画面整列し観覧しやすくするスクリプト ( Autoit3 )
・アクティブなアプリのタイトル名に任意の文字を追加する Autoit3 スクリプト
・アプリのウィンドウを隠し、メニュー一覧から戻す Wind_Hiding Autoit スクリプト
・ファイルをデータベース化する Autoit スクリプト、ファイルを移動しても起動可能
・Autoit と IrfanView でドラッグした画像ファイルを横2分割して保存するスクリプト
・バッチファイルからツールチップで文字を表示する Autoit スクリプト
・バッチファイル 指定したタイトルバー名が存在しない場合、
一時待機を実現する Autoit スクリプト
・Win10/Win11 アクティブなウィンドウを
任意の仮想デスクトップ番号へ移動するスクリプト
・メモ帳で編集可能な BAT や VBS など複数言語を
1つのファイルに書き込んで実行するスクリプト
・CapsLock が無効のパソコンで
CapsLock を切り替えるアプリ/スクリプト Win10
・メモ帳などマウスやキーボードで文字を範囲選択したら自動でクリップボードへ送るスクリプト
・EmEditor/秀丸エディタで検索結果をリスト表示し
ダブルクリックで該当行へ飛ぶスクリプト EH_Search
・ブラウザでCTRL+Sを押し名前をつけ保存の作業を半自動化するスクリプト
Chrome / Edge / Vivaldi / Firefox
・ショートカットキーを押して文字反転/文字が選択されているテキストを
ファイルへ保存するスクリプト
・ファイルを選択しショートカットキーで日時を付加し
コピー/リネーム/フルパス取得 Autoitスクリプト
・メニューで選択した起動中のアプリ ( ウィンドウ ) を最前列に/仮想デスクトップ移動する Autoit スクリプト
・アプリを呼び出す場合に日本語変換中なら一時待機する Autoit スクリプト
・Win10 指定範囲でマウスホイールを回転し
ALT+TABキー の動作をする Autoit スクリプト
- 関連記事
-
- Autoit スクリプト ( EXE ) にファイルをドラッグで関連付けされたアプリのフォルダを開くを実現 (2023/10/13)
- ファイル名に指定ファイル名が含まれていたら指定したアプリで開く Autoit スクリプト (2023/08/30)
- テンキーの長押しに任意のショートカットキーなどの機能を登録可能な Autoit スクリプト (2023/07/24)
- Win11 バッチファイルを管理/ウィンドウへファイルをドラッグでバッチを選択実行 Autoit スクリプト (2023/07/10)
- デスクトップにラインを引き左ダブルクリックで任意のフォルダを開く Autoit スクリプト (2023/05/12)
- キャプチャーするウィンドウの後ろに単色画面を出し余計な画面の映り込みを排除する Autoit スクリプト (2023/02/24)
- Everything search engine で拡張子ごとに開くアプリを指定する方法 (2023/02/15)
- 指定キー+マウスホイール上下で登録した作業を行う Autoit スクリプト (2023/01/23)
- ブラウザ上で文字を選択しホットキーで文字を検索 Autoit スクリプト Firefox Edge Vivaldi Chrome (2023/01/15)
- ブラウザでCTRL+Enterキー/指定キーを押し任意の検索サイトで検索をする Autoit スクリプト (2023/01/04)