Stream DeckやLoupeDeckなどのマクロキーパッドでOBS Studio(でもなんでも)の起動ボタンを作る時、単純に.exeを指定して起動しようとすると、既に起動しているインスタンスがあった時に多重起動警告が出てしまいます。起動オプションをざっと眺めても、警告を出なくすることはできるものの、多重起動にはなってしまうぽい。
そこで、AutoHotKeyを使って
- 未起動時は起動する
- 既に起動していたらそちらのウインドウに切り替える
という動作を実現してみました。このスクリプトを適当な空いてるキー(下のコード例ではCtrl+Shift+Alt+F1)にアサインし、それをStream Deckで呼び出す感じです。
1 2 3 4 5 6 7 8 9 10 11 |
; Bring OBS Studio front. ^+!F1:: { if (WinExist("ahk_exe obs64.exe")){ WinActivate } else { SetWorkingDir "c:\Program Files\obs-studio\bin\64bit\" Run "c:\Program Files\obs-studio\bin\64bit\obs64.exe" } } |
他のアプリやゲームに応用したい時は、
- SetWorkingDir(作業フォルダの指定)の行に実行したいファイルを含むフォルダのパス(アプリによっては不要かも)
- Run(実行ファイルの指定)の行に起動したい.exeファイルのフルパス
- WinExist(起動中かの判定条件)のところは”ahk_exe (.exeファイル名)”
ぶnにそれぞれ置き換えればよいはずです。この例ではWinExistで実行中プロセスから該当.exe名を探して判定しますが、AutoHotKeyでは他にもウインドウタイトルとかでもマッチして判定できるので、例えば「ブラウザで特定のタイトル文字列を含むタブが存在したら」みたいな判定もできると思います。
AutoHotKeyのインストールと初期設定が必要なのでややまわりくどいですが、Stream Deck以外からでも、なんなら直接キーボードショートカットとしても使えるので参考まで。