ゲームが起動している間バックグラウンドでJavaでプロセスを走らせ、ゲーム終了と共にプロセスも終了させるプログラムを作ってみました。
既に同じ考え方のスクリプトは出回ってますが、私が登録したいゲームの中には管理者権限が必要なモノがあったり、一々スクリプト書き換えないでコマンドライン引数でゲームを指定できないかなと思ったので自分で作ってみました。
使い方を要約すると作業フォルダは各ゲームのディレクトリに指定したままリンク先を「<NonSteamの絶対パス> <ゲームのファイル名(プロセス名)> <ランチャーのパス>」にすることで登録できます。
私の環境ではウイルスとして判断されることはありませんでしたが、もしかしたらセキュリティソフトによってはブロックされるかもしれません。
ソフトウェア配布のお決まり文句である「このソフトを使う場合は自己責任で、如何なる損害が生じても当サイトは関与しません」とだけ明言しておきます。
質問・バグ報告等はコメント欄かメールフォームまで。
使い方
手順1: 用途に合わせたexeファイルの選択
それぞれのファイルは機能が微妙に異なるので、必要なものを選んでください。
NonSteam.exe – 通常の機能
NonSteamUac.exe – 管理者権限を要求して起動
NonSteamC.exe – コンソール出力有りで、簡易的にエラー内容が見れる
NonSteamUacC.exe – NonSteamUacとNonSteamCの機能
NonSteam.exeではログ機能等は無いので、うまく動作しないときはNonSteamC.exeで起動してみるとコンソールにエラー内容が表示されるかもしれません。
手順2: 選択したファイルを用途に合わせて配置
ゲームごとに配置する場合は、「ランチャープログラムがあるフォルダ」にexeファイルを配置します。この方法は、NonSteamで登録するゲーム数が少ない場合におすすめです。
特定の場所に配置する場合は、「自分で決めた場所」にexeファイルを配置します。この方法は、NonSteamで登録するゲーム数が多い場合におすすめです。
手順3: Steamへの登録
NonSteam.exeを選択し、
ゲームプログラムが「C:\Program Files\example\abc.exe」にあり、
ランチャーが「C:\Program Files\example\abc_launcher.exe」にあるという体で説明したいと思います。
どちらの方法でも共通で最初は[非Steamゲームを追加]から目的のゲームを追加しておくことで作業フォルダの設定を省いたり、引数用のプログラム名をコピーできたりするのでおすすめします。
コマンドライン引数に入れるファイル名やファイルパスに空白が含まれる場合は””で囲みます。
ゲームごとに配置した場合
「C:\Program Files\example\」にNonSteam.exeが配置されていると思います。
先に作成した非Steamゲームショートカットから、[管理]→[プロパティ]と選択してリンク先を以下のように書き換えることで登録完了です。
「”C:\Program Files\example\<ランチャーもしくは本体>.exe”」
→「”C:\Program Files\example\NonSteam.exe” abc.exe abc_launcher.exe」
特定の場所に配置した場合
「C:\」にNonSteam.exeを配置したと仮定して説明します。
先に作成した非Steamゲームショートカットから、[管理]→[プロパティ]と選択してリンク先を以下のように書き換えることで登録完了です。
「”C:\Program Files\example\<ランチャーもしくは本体>.exe”」
→「”C:\NonSteam.exe” abc.exe “C:\Program Files\example\abc_launcher.exe”」
ダウンロード
今までJavaプログラムを利用したことない場合やライブラリが古い場合はJREをインストールする必要が出てくると思います。
ソースコードの内容的にはだいぶ古いJava環境でも動くと思いますが、動作確認がめんどいので開発環境のバージョンである1.8.0を最低要求にしてます。
コメント