プリンタの白黒設定をレジストリから実施するために調べたこと - treedown’s Report

treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

プリンタの白黒設定をレジストリから実施するために調べたこと

プリンタ(複合機)導入時にドライバのインストールが必要になりますが、そのタイミングで印刷設定を「カラー⇒白黒」に設定変更したい、ということがあり、レジストリからできないか調べてみました。
結果として上手くいかなかったのですが、調べた内容は残しておこうと思いました。

白黒設定を標準にした方法

今回、レジストリで上手くいかなかったので、結論としてメーカのツールを利用して白黒設定を標準としてドライバをインストールすることで、やりたいことを達成しました。

※参考:複数のパソコンに同じ設定のプリンタードライバーをインストールしたい
https://www.fujifilm.com/fb/support/publishing/apro_c810/contents/apro_c810_2306.html

対象がFUJIFILMの複合機だったため、前述のURLに記載がある「ドライバセットアップディスク作成ツール」を使用して、カスタマイズしたドライバを展開することで、白黒設定を適用したドライバを展開することができました。

このため、これ以降のレジストリを編集したやり方は上手くいかなかった方法の記録として残しておきます。

印刷設定「レジストリ

最初に目を付けたのは、プリンタプロパティ内の「標準の設定」にある印刷設定です。ここを変更することができれば目的の設定ができると考えました。

GUIでは、

プリンタのプロパティから「詳細設定」⇒「標準の設定」で開く画面の印刷設定です。

ここの印刷設定で白黒⇔カラーを変更しながらレジストリの変更点を調べていくというやり方で、ちょっとづつレジストリを調べてみたところ、

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\%プリンタ名%

にあるキーの「Default DevMode」という値に印刷設定が保存されていることが分かりました。

この「Default DevMode」値はバイナリなので直接記述することはできないのですが、

GUIで白黒設定をすると、この中の一部箇所が「00」から「01」に書き換わることは確認できました。

そうなると、このキーをエクスポートして別のPCでドライバインストール時にキーのインポートをしてやればいいのではないかと考えて、実際にやってみることにしました。

やってみたが、なんか上手くいかない

ドライバインストールと一緒にレジストリキーをインポートする方式でプリンタの追加をやってみました。

すると、

レジストリで指定した「標準の設定」側の印刷設定は「白黒」に設定することができたのですが、

「全般」画面の「基本設定」(にある実際のユーザが印刷するときに参照される設定画面)では、

「カラー(自動判別)」のままになっていました。

この位置のカラーモードの設定は「標準の設定」の設定値を取得して自動で書き換わると思っていたのですが、レジストリ設定から設定を実行する場合はなんかうまく設定されないような動きを見せています。

ユーザのレジストリ設定も調べてみるが…

それならとユーザ固有のレジストリキーであるHKEY_USERS配下で同様な印刷設定がないか探してみたところ、

HKEY_USERS\%ユーザのSID%\Printers\DevModePerUser
HKEY_USERS\%ユーザのSID%\Printers\DevModes2

この二つの配下にREG_BINARYで保管されているデータがユーザ毎の印刷設定(ここを変更すると印刷設定変更可能)のようでした。

ただ、ここの配下のユーザを直接指定して印刷設定を変更するには、ユーザのSIDを都度取得したあとSIDは変数としてバッチファイルなどで処理を上手く入れないと印刷設定を入れ込むことができない、という結論に達しました。

ここまでで、冒頭の「ドライバセットアップディスク作成ツール」を使用する方法のほうが確実に設定可能という結論に至り、レジストリキーで白黒設定するというのを諦めた、という顛末になります。
調べた時間はちょっともったいなかったかもしれません。

レジストリキー一覧

せっかく調べたので、プリンタ印刷に関わるレジストリキー(プリンタ名でレジストリ内を検索して調べた)一覧を記録しておきます。システムとユーザでまとめて記入しています。

--------------------------------------------------------------
プリンタの印刷設定に関わるレジストリキー一覧
--------------------------------------------------------------
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\%プリンタ名%
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\%プリンタ名%\DsDriver
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\%プリンタ名%\DsSpooler
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\%プリンタ名%\PnPData
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\%プリンタ名%\PrinterDriverData

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SWD\PRINTENUM\%GUID%

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Printers\%プリンタ名%
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Printers\%プリンタ名%\DsDriver
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Printers\%プリンタ名%\DsSpooler
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Printers\%プリンタ名%\PnPData
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Printers\%プリンタ名%\PrinterDriverData

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\SWD\PRINTENUM\%GUID%

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%\DsDriver
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%\DsSpooler
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%\PnPData
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%\PrinterDriverData

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%\DsDriver
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%\DsSpooler
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%\PnPData
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Print\Printers\%プリンタ名%\PrinterDriverData

HKEY_USERS\%ユーザのSID%\Printers\DevModePerUser
HKEY_USERS\%ユーザのSID%\Printers\DevModes2

※この二つの配下にREG_BINARYで保管されているデータがユーザ毎の印刷設定(ここを変更すると印刷設定変更可能)

--------------------------------------------------------------