2021/09/19(Sun)brother製スキャンツールControlCenter4を直接起動する方法

2021/09/19 1:32 Hardware::Printer
先日brother製の家庭用プリンター複合機DCP-J987Nを購入し、ペーパーレス化のためにどしどしスキャナーを活用していこうと思っていた矢先、同社製スキャンツール ControlCenter 4を起動するためにBrother Utilitiesというランチャーを経由する手間が要ることが分かった。
たま~に使うだけならよいものの、意外と一手間増えるのってストレスなので、ショートカットを作って直接起動できる方法を探ってみたメモ。

TL;DR

brother-utility3.png

"C:\Program Files (x86)\ControlCenter4\BrCcBoot.exe" /model="DCP-J987N LAN" /OpenTab=0x01
/modelには、ControlCenter 4に表示される"モデル"をそのまま指定する感じ。
/OpenTabには、最初に開くタブのIDを指定すれば良い模様。省略可。試してみた感じ、
省略, 0x01
スキャン
0x02
PCコピー
0x03, 0x04
フォト
が開いたけれど、スキャン設定や、サポートのタブを指定する方法は不明。(まあここをスタートアップにする使い道ないと思うけど……)

以下、上記の調べ方。

ランチャーが起動するパスをどうやって調べるか?

まずBrother Utilitiesという正規のランチャー。

brother-utility1.png


これは普通にスタートメニュー*1にあるし、タスクマネージャでファイルの場所を開くすれば出所はすぐ分かる
"C:\Program Files (x86)\Brother\BrLauncher\BrLauncher.exe"
brother-utility2.png


で、問題のControlCenter 4を起動した状態で同じ事をやると、
brother-utility3.png

"C:\Program Files (x86)\ControlCenter4\BrCcUxSys.exe"
が起動していることは分かるのだが、単純にダブルクリックで開けないところが厄介。
ControlCenter内でもモデル選択のドロップダウンがあるのだから、brother機器が複数登録されていたとしたら、最後に使ったモデルでも、昇順で最初でもなんでも良いと思うのだけど……。

タスクマネージャに起動コマンドラインを確認する手立てがあるので、詳細タブで列を増やして見てみる。

brother-utility4.png


これでBrCcUxSysが-BootProcというコマンドラインで起動されたことは分かるものの、そのまま再現してみても起動せず、さらにProcess Explorerを見るとこれはBrCtrlCntrの子プロセスとして起動しているものの、これも直接起動は出来ない。

brother-utility5.png


Parent processは既に終了しているようだったが、同じディレクトリ内にBrCcBoot.exeというバイナリが居るので、これに目を付けてみる。→ で、説明にもあるように、これがエントリポイント。

brother-utility6.png


試しにこれを起動引数を表示する適当な自作バイナリに置き換えてみたところ、上記のように/modelと/OpenTabを引数に取るランチャーであることが判明した。

起動パラメータを調べる適当なバイナリの作り方

これを適当な名前(BrCcBoot.cs等)で保存し、
using System;
using System.Windows.Forms;

public static class BrCcBoot {
	public static void Main(string[] args) {
		MessageBox.Show(String.Join(" ", args));
	}
}
コマンドプロンプト等から適当な.NET FrameworkのC# Compilerを使ってコンパイル
> %windir%\Microsoft.NET\Framework64\v4.0.30319\csc.exe BrCcBoot.cs
これで、BrCcBoot.exeが出来上がるので、本物とすり替えてBrother Utilitiesアプリからボタンを押すだけでメッセージボックスに実引数/model="DCP-J987N LAN" /OpenTab=0x01"が表示される。
Windows標準のダイアログはCtrl+Cでコピーできるので、メモ帳にでも貼り付けてショートカットを作ると良い。

*1 : C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Brother