CatShanty2 が vertion 0.60000 にバージョンアップ!

今回のバージョンアップにより実行ファイルのプロセス監視方法を細かく指定できるようになったようです!

Steamのような段階を経てゲームを起動するようなシステムの場合、起動するゲームのタイトルを判断するのが難しかったのですが、イメージファイルの名前を手がかりにしてプロセスを判別する方法が拡張されたことでプロセス検知の可能性が広がりました。

お恥ずかしながら、最初アップデートの内容がピンと来なかったです。ゴメンナサイ・・・

しかし、CatShanty2のサイト内にあるTipsコーナーに、Steamゲームの起動方法に関する項目が増えているではないですか!その設定方法を読んだのですが、新しく追加された iniload 機能が凄まじく便利で感動しました。というか、こんな場所でも置換定数が使えるのか!って驚きです。

私もSteamのショートカットを一箇所に集めてCatShanty2に管理させている点は同じなんですが、MS-DOS時代の古い感覚で、ファイル名にスペース入ってるのがなんか苦手で、ショートカットのファイル名からスペース削ったり、アンダーバーに置き換えたりしていて、折角のイメージ名を半角スペースで区切る機能を活用できなくしてしまっていたようで、最初のTips読んでいても自分の環境だと活用できないかなーってガックリきてたんですが、Tips3あたりからの独自のiniファイルを作ってゲームタイトルを指定する方法が凄く使えそうだと感じて、Tips4で出てきた最終的な設定をまるごと使ってみました。

それまでは、CatShanty2にプロセスチェックさせるのは諦めていて、AutoHotKeyのスクリプトで、SteamのURLファイルを実行した後に、CatShanty2に戻るためのダイアログを表示してスクリプトを待機させる方式を使っていました。

d0077887_19134699.jpg


CatShanty2には、このスクリプトが終了するのを監視させているわけです。
(自分用に使っているだけなので、あやしい英語はご愛嬌ということで許して下さい)

今回のSteamへの対応でシッカリとゲームの起動状態を監視できるようになって嬉しい半面、現在1000本以上Steamゲームを持っているので、それらのiniファイルを手作業で作ることを考えると気が遠くなってきて憂鬱な気分になりました・・・(嬉しい悲鳴かも)

そこで、AutoHotKeyを使って、半自動でiniファイルを作成するスクリプト「GetGameTitle」を作ってみました!ダウンロードはこちらから
(※2017年4月にプロパイダの変更に伴い、現在はダウンロードできないです)


エミュレーター設定の中の「補助設定2」の中にある「起動時に実行する他のアプリケーション」に今回作った「GetGameTitle.exe」を指定して、オプションに置換定数の$imageを指定します。
「プログラムの終了を待機」のチェックボックスはONにしないよう注意。

d0077887_20565052.png


(個人的にプログラム2の部分に海外のゲームパッド関連のプログラムを指定していますが、ここは無視して下さい。)

「高度な設定」タブの「ウィンドウを検知するまでタイムアウトせず起動処理を継続する」をチェックしてると、本スクリプトはタイトルをうまく認識できたんだろうと勘違いして5分後ぐらいに終了してしまうので、検索間隔を20秒以内ぐらいに設定して、チェックボックスを外しておいて下さい。

動作内容は、Steamのゲームを起動すると、GetGameTitleが起動して、ゲームの起動が終わるであろう30秒ほど経った所で、CatShanty2の状態をチェック。タイトルを認識できずに最小化が解除されているようなら、5秒間ほど待機してアクティブウィンドウのタイトル情報を取得。インプットダイアログを表示して、ゲームタイトルと思われるテキストを先行入力した状態で確認を求めます。

ゲームのタイトルを勝手に調べて全自動でiniファイルを作ることもできるのですが、一応自分で最終確認をしたいという部分と、裏で勝手に動いてファイルを作るのは嫌だったので、ゲーム中に邪魔くさいですがダイアログを出すように作っています。既にiniファイルが存在している場合は何もせず終了しますし、イメージファイル名からタイトル名が合致してCatShanty2が最小化したままであれば、5分ほどで勝手にスクリプトは終了するので、確認が出るのは上手く認識できていない時だけです。

d0077887_19152393.png


上の画像は、Steamで人気のある「UNDERTALE」というゲームの起動後、スクリプトがタイトルを自動取得して確認のダイアログが出たところです。私がCatShanty2に登録したショートカットのファイル名は「Undertale.url」なのでタイトル名とマッチングするはずなのですが、何故かスクリプトのインプットダイアログが起動しました。

ここで[OK]を押せばショートカットファイルと同じ場所にiniファイルが作られます。[Cancel]かクローズボックスを押すとダイアログが一旦消え、5秒後に再度アクティブウィンドウのタイトルを調べてダイアログが再表示される仕様です。ランチャーなどが起動して目的のゲームが起動していない時は、本体のゲームが起動した後に[Cancel]を押して、5秒後までにゲームウィンドウをアクティブにすればタイトル名を拾ってくれます。うまくタイトル名が拾われない場合は、直接タイトルを手入力してもOKです。

スクリプトを強制終了させたい場合はタスクバーに出てくるジョイスティックアイコンを右クリックして終了させます。このアイコンは■天ぷら工房■様のサイトで公開されていた、電波新聞社のX1用ジョイスティックXE-1のアイコンを使わせて頂いています。(X1ユーザーだったので思い入れのあるジョイスティックなんです)

d0077887_19155392.png


今回のバージョンアップで、Steamのゲームを起動する場合も、問題がほとんど無くなって使いやすくなりました・・・しかし、まだWindowsゲームだけはAHKスクリプトを使った起動を行っているんですよね・・・

最初に書いたSteamゲームを起動するAHKスクリプトは、URLファイルの他にも普通のショートカットファイルも起動できるので、今もWindowsのゲームを起動する為に利用しています。ショートカットファイルはURLファイルと違って、中身はバイナリーデーターなので、ショートカットのリンク先を取得するAHKコマンドを使って実行ファイルの場所と名前を調べて、作業フォルダを指定して起動するという処理をしています。

今回、 iniload 置換定数がいろいろな場所で使えることを知ったので、もしかすると「エミュレーター設定」の「基本設定」内にある「エミュレーター本体」の部分にも置換定数が使えるんじゃないか?と思い、 $image と入力してショートカットファイルを直接実行できるか試してみましたがエラーになってしまいました・・・うーん残念。

でも、本当にCatShanty2はどんどん快適になっていくので目が離せないです!
作者様の頑張りにワクワクしつつも頭が下がる思いです。
CatShanty2の益々の発展を期待しています~
[PR]

  by Golvazhed | 2016-07-24 19:54 | CatShanty

<< ゲームパッド補助ソフトXpadder CatShanty2 ver0... >>

SEM SKIN - DESIGN by SEM EXE