AutoHotkeyを用いてSteamゲーム起動選択を実現する。
基本的には、デスクトップ上にあるショートカットファイルからゲームを起動するのだが、デスクトップを表示させるのがめんどくさい。
遊びたいゲームが複数ある場合は、探すのもおっくうになるほど管理が大変になる。
何とかして楽ができないか考えた。
ということで、表題通り、GUIからゲームを選び、そこから目的のゲームを起動する方法をとる。
一見めんどくさそうに思うのだが、GUI起動をショートカットキーに割り当てておけば、デスクトップを表示させることもなく、そこから選ぶこともなく、いつでも呼び出せるという点が異なる。
何より、ゲーム起動時のショートカットキーは、ゲームの頭文字に割り当てるため、簡単に無意識下で呼び出せるのも少ない労力になることだろう。
そう思ったのだが、常駐させないため、必ず最低でも1度はデスクトップなりどこかなりのエクスプローラを表示させる必要があり、そして今回のプログラムを起動させる作業が発生する。
1行登録のみの場合は、GUIを表示せず、直接ゲーム起動できるようにしたため、利便性は向上したはず。
プログラミング部分
解説するまでもないことだが、、、
AutoHotkeyを使い、デスクトップ上にあるショートカットファイルをもとにGUIを生成し、そのGUIから人間様が目的のゲームを選択し、そしてOKボタン押下により、晴れてGame Play!!
当たり前だが、ショートカットファイルの作成やその登録などは手作業で行う。
Game起動後は、本プログラムが終了する。
基本的に
一応は、GithubのReadme.mdに解説を書いている。
Pathの書き換え方法。
見栄えの問題として、配列にショートカットファイルを記述する場合、空行を付けることにしている。
GameArray := [ ; ここが1行目の空行
, A_Desktop . "\[ゲーム用ショートカットファイル名].url" ; ここが2行目
, A_Desktop . "\Flockers.url" ; 3行目。
, ""] ; 4行目も空行。
境界値テストを厳密にやっていないため、1行目にショートカットファイルを記述した場合、読み込まないかもしれない。
また、存在しないショートカットファイルを記述した場合、GUIに反映させていない。
呼び出し方法
関数の使い方。
以下、例。
; 下記、F1とoキーの組み合わせで起動する。
F1 & o::
; 以下、配列(ここに起動したいゲームのショートカットファイルを指定する。
GameArray := [ ; ここは空行
, A_Desktop . "\Oxygen Not Included.url"
, A_Desktop . "\OpenTTD.url"
, ""] ; ここも空行(どちらも見栄えのため)
; 上記配列を第1引数に渡す。
Launch2steam4autoHotKey( GameArray )
return
AutoHotkeyでの起動方法は、F1 & o::
であれば、F1キーとoキーの組み合わせでゲーム起動用GUIが立ち上がる。
配列(GameArray
)には立ち上げたいゲームのショートカットファイル名を記載すればいい。
プログラムを少し改良し、exeファイルやURLの記述も対応した。
上記例は、デスクトップ上に置いているため、組み込み変数のA_Desktop
を使っているだけで、Pathをそのまま記載しても動く。
その後は呼び出し。
Launch2steam4autoHotKey
関数に、作成した配列を第1引数に渡すだけ。
冒頭通り、1行記述をした場合、GUIを表示せず、直接ゲームが起動する(本プログラム常駐)。
しかし、1行のみの場合の指定は、ショートカットファイルかURLのどちらかに限る。
あとは起動ショートカットキーで呼び出すだけ(上記例で言えば、F1 & o
)。
これでゲーム生活が快適になればお慰み。
AutoHotKeyそのもの
基本的に、今までの派遣先は、実行させる許可を出してくれなかった。
何が原因かわからないが、Ctrl+h
でバックスペースキーにできないのはストレスになるため、結構つらいのだが、御上の決定を覆すだけの発言権がないため、文字を消すときは必ず躓くことになるという・・・。
その仕組みを入れていたのだが、改良後は、削除した(常駐させないために)。
そもそもネットワークから隔離された場所で有名なのは金融系の現場で、その場合はどうしようもない。
ドコモの開発現場もそうだった。
キーボードの持ち込みもできないため、間違った記号配置のキーボードを押しつけられて静かに憤ったよ(ただの派遣社員があらがうすべ無し)。
そして、その現場のNEC女性は、休日出勤指示を私事で出してくるほどこき使ってくる。
拒否したら私の映画鑑賞についてくるとか私の私生活にまで踏み込んで権限乱用して派遣社員を見下してきた。
腹立って仕方なかった。
全部拒否したけど。
くっそぉ~。
また、テキストエディタの導入も拒む現場がある。
何の理由で嫌がるのか全く分からない(現場リーダが客に許可を求める必要があったから?)。
以上。