月好きの色々

RTAやテトリス、パソコン関係の事等を色々書いてます

普通のテンキーを使ってStreamdeckのようなものを作ってみた

こんにちは、月好きです。
最近TwitterでStreamdeckを購入されている方を見かけて、あったら便利そうだな~と思いました。しかし、一番安いグレードでも1万円を超えていて正直あまり簡単には手が出せません・・・。
という事で今回は普通のテンキーでStreamdeckのようなものを作ってみます。


結果

まず最初に、どのようなものが完成したかですが

f:id:Tsukisuki_RTA:20200903024146j:plain

このような感じになりました(NumLock割り当て不可、1キー未割り当て)

Streamdeckというか、完全に左手キーボードやプログラマブルテンキーです・・・
しかし、1ボタンで配信に使うソフトを同時起動したり、OBSの録画・停止ができたりとStreamdeckの機能を再現する事ができました
逆にできなかった事はプロファイルや階層の作成です。これがあれば動画編集の時と配信の時で全く別の動作を割り当てるといった事ができるのですが今回使ったソフトだけではできませんでした・・・


使ったもの

・普通のテンキー(キーボードやマウスでも可能)
・HID Macros(フリーソフト)
Windowsのbatファイルを使った複数ソフトを同時に起動する機能


作り方

まず最初にHID Macrosのダウンロードと使い方についてですが、

https://web.archive.org/web/20201101092824/https://ken26u.hatenablog.jp/entry/2020/06/29/192426
こちらのブログが非常に分かりやすかったので貼っておきます。慣れればとても簡単に設定ができ、使いやすいソフトでした。

HID Macrosは普通のマクロソフトと違い、"キーボードごとに異なるマクロを設定"する事ができます。今回このソフトを選んだ大きな理由です。
自分は普段テンキー付きのキーボードを使っているため干渉しないマクロソフトを探していました。ゲームパッドなどで行っている方もいらっしゃいましたがやはり打ち慣れているキーボードが使いたかったんですよね・・・ちなみに今回はコンパクトなテンキーを使いましたがキーボードでも同じ事ができました。

今回はこのソフトで
・特定のショートカットキーを押してもらい、YouTubeTwitterなどのサイト起動やOBSの録画開始・停止、LiveSplitのタイマースタート・ストップを行う
・指定した場所のexeやbatを開き、アプリの単体起動・同時起動を行う
ように設定しました。


send keyboard sequence:キーを同時押ししてくれる機能です。
OBSとLiveSplitにはホットキー機能があり、自由にショートカットを割り当てる事ができます。自分は今まで、OBSはクリックで録画、LiveSplitはCtrlキー(PC触り始めでショートカットキーを覚えていなかった頃の名残)とテンキーをショートカットに割り当てていました。
今回はOBSとLiveSplitに普段絶対押さないようなショートカットを割り当て(誤爆防止)、そのキーをHID Macrosのsend keyboard sequenceで設定しました。
sendkeys関数を使っているらしく、Ctrl+Altは(^%)のような書き方をします。
https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys.send?view=netcore-3.1


run application:アプリ・サイトの起動にはこの機能を使いました。
単体起動は非常に簡単で、三点マークからソフトのexeを指定してあげるだけです。どこにexeがあるのかわからない場合は"ショートカットを右クリック→ファイルの場所を開く"かeverythingなどのソフトで名前検索すると出てきます。

ウェブサイトの起動と複数ソフトの同時起動が少し面倒でしたが設定してしまえばめちゃくちゃ便利です。

ざっくり言うと
メモ帳などのテキストエディタで同時に開きたいソフトの場所やurlを指定

拡張子を.batにして一つのファイルとして認識させる

先程と同様に三点マークから作ったbatファイルを指定

です。

設定方法はこちらのサイトが分かりやすかったです
https://toomva.blog.fc2.com/blog-entry-293.html

自分はコマンドプロンプトに詳しくないですが、cdコマンドとstartコマンドを使って起動すると言えば分かる人は分かるのかもしれないので書いておきます(他に良い方法があるかもしれません)
この方法で作成したbatファイルは普通にクリックでも起動するのでテンキーとか関係無く便利です。


注意点

・HID Macrosは常駐ソフトではないので起動してあげる必要があります。頻繁に使うのであればこのソフトのショートカットをスタートアップファイルに入れておきましょう。PC起動時に勝手に起動してくれます。(Win+Rでファイル名を指定して実行→shell:startupを入力でスタートアップフォルダを開けます)

・ソフトの同時起動ですが、同時なので一時的に動作が重くなります。起動させるソフトが多すぎたり、PC性能があまり高くない場合はブルスクなどの原因になるので気をつけましょう。

・ウェブサイトの起動もbatファイルで行った理由ですが、Windowsの"作成したショートカットに「Ctrl+Alt+任意のキー」でショートカットキーを割り当てる"機能で作成したショートカットキーをHID Macrosで入力してもらうという動作が不可能でした。これが可能なら全てsend keyboard sequenceに任せる事ができたのですが諦めました・・・

・sendkeys関数はWindowsキーの押下判定を送る事ができません。そのため、Win+PrintScreenやWin+Dのような"Windowsキーを使ったショートカット"には非対応です。逆にWindowsキーを押した時にマクロを実行する事は可能です。

・テンキーをショートカットデバイスとして使う際(今回作ったやつ)はNumLockの有効/無効に気を付けてください。HID Macrosにショートカットキーを登録する時もですが、NumLock有効時と無効時では同じキーを押していてもそれぞれ別のキーを押している判定になります。ちなみにNumLockキーにマクロを割り当てる事はできなかったです。


最後に

プロファイルや階層など完全にStreamdeckを再現する事はできませんでしたが、普通のテンキーに本来2~3000円する左手キーボードやプログラマブルテンキーを超える機能を付ける事ができました。今回はテンキーでしたが普通のキーボードやマウスでも同じように設定できるので様々な使い方が可能な良いソフトだったと思います。