好々爺の電脳遊戯録

PCゲームに関してプレイ日記(ログ)やmod、周辺ツールのことなど書いていこうかな、と。

The Elder Scrolls Online日本語版のゲーム本編には不要なDMM Game Playerを自動停止させるバッチファイルを作ってみた

2017/6/23まで、DMM.comが初期費用負担キャンペーン(=実質無料)を行っている『The Elder Scrolls Online』日本語版(以下、TESO日本語版)を始めて数週間が立とうとしている。

そこそこに面白いと思いつつ、ゲーム本編の起動までが煩雑かつ余計なランチャーを都度停止させるのが面倒なので、バッチファイルを書いた。

【2018/01/11 追記】
筆者は、すでにTESO日本語版をプレイしていません。

【2018/06/01 追記】
どうやら、現時点でも本バッチで停止できる様子。
(TESO本体のインストールまでは行っていないけど、TESO側ランチャー起動までは確認した)

【2021/01/13 追記】
記事にあるバッチファイルを流用して「DMM Game Player →目的のゲーム起動→DMM Game Player 終了」が可能なのは、以下の場合だけ。

  • 「dmmgameplayer://~~」というURLショートカットでゲーム起動が出来ること。

これは、「目的のゲームがインストーラーを使い、PCへインストールする」必要があるタイプということ。
(インストールの途中で、デスクトップショートカットを作成してくれるものであればよい)

DMMでサービスしているGAMEには「ダウンロード版」というのもある。
こちらは、本記事(のバッチファイル)で行っている方法では無理。


1. バッチファイルの目的

TESO日本語版だけをプレイする人にとっては、 DMM Game Player は常時起動する必要がなく、TESO側のランチャーが起動したら用済み。*1
そのため、毎回手作業でアプリを止めるのも面倒なので、自動で止めちゃおうというのがこのバッチの目的。

2. バッチファイル本体

先人の知恵(ブログ記事)を参考に書いたのが以下のもの。

@ECHO OFF
@IF NOT "%~0"=="%~dp0.\%~nx0" (
START /min cmd /c,"%~dp0.\%~nx0" %*
GOTO :EOF
)
START dmmgameplayer://eso/cl/general/eso

:TASK_CHECK
TASKLIST | FIND "Bethesda.net_Launcher.exe" > NUL
IF NOT ERRORLEVEL 1 (
  GOTO KILL_DMM
) ELSE (
  GOTO TASK_CHECK
)

:KILL_DMM
TIMEOUT 3 > NUL
FOR /F "usebackq tokens=2" %%a IN (
  `TASKLIST /fi "IMAGENAME eq DMMGamePlayer.exe" ^| FINDSTR "[0-9]"`) DO (
  TASKKILL /PID %%a
)

EXIT

3. 準備作業

  1. テキストエディタ(メモ帳でもよい)で、上のバッチファイル本体の内容を適当な名前(例:TESO起動.bat)で保存(セーブ)する。

  2. 保存(セーブ)したバッチファイル右クリックして、『ショートカットの作成』を行う。

  3. 出来上がったショートカット右クリックして、『プロパティ』を選択する。

  4. 表示された『プロパティ - 詳細』タブ右下にある [詳細設定...] ボタンを押す。

  5. 『(バッチファイル名)のショートカットの詳細設定』が表示されるので、『管理者として実行(R)』チェックを入れから、 [OK] ボタンを押して『詳細設定』を抜ける。

  6. 『プロパティ - 詳細』に戻ったら、[OK]ボタンを押して変更を反映させる。

  7. 上記作業を行ったショートカットをデスクトップに置いておく 。

4. 使い方

  1. デスクトップに置いたショートカットダブルクリックして実行する。

  2. UAC警告(ユーザ制御ダイアログ)が出たら、[OK]を押す。

  3. あとは、TESOランチャーが立ち上がるまで放置する。

5. 注意書き

  • Windows10 Pro(64bit)でしか動作確認してません。
  • ショートカットを用いない場合、バッチファイルを『管理者として実行』しないとDMM Game Player を停止することはできません。*2
  • Windows10では、ショートカットをタスクバーやスタートメニューに登録できない仕様のため、デスクトップへ置くことで代用しています。

あとがき

これで Bethesda.net_Launcher (TESOランチャー) にある 『プレイ』を押すまえに DMM Game Player を手動で止めていた手間がなくなった。

ゲーム本編起動と合わせていろいろとアプリ起動が必要な人は、EXITの前に処理を加えてください。
例えば、動画配信/録画アプリを起動させる、タイマーをセットさせる、など。

また、マウスイベントをエミュレートするモノを付け加えれば『プレイ』ボタンを押す操作も自動化できる。(要望があれば、別途記事を書くかも)


付録. バッチファイルの簡単な流れ:

  1. コマンドプロンプトを最小化するためのおまじない (冒頭の@IF ~ GOTO :EOF)

  2. DMM Game Player 経由で Bethesda.net_Launcher (TESOランチャー)を起動 (START dmmgameplayer:~ )

  3. Bethesda.net_Launcher (TESOランチャー)が起動するまで待つ(:TASK_CHECK)

  4. 起動して 3秒後に DMM Game Player を停止 (:KILL_DMM 以降)

*1:DMM Game Player 自体は、課金周りで必要かもしれないが、毎回必要というものでもない。 また、DMMゲーム全体のランチャーも兼ねており、自動停止する仕組みはない様子。

*2:DMM Game Player がUAC(ユーザ制御)を要求することと関連していると思われる