C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■86338 / )  Re[2]: 印刷の設定方法
□投稿者/ Jitta (357回)-(2018/01/20(Sat) 09:48:09)
プリンターのプロパティを開いて、
Windows 10 の場合、設定→デバイス→プリンターとスキャナー→対象のプリンター→管理→プリンターのプロパティ→詳細設定→印刷後ドキュメントを残す
をチェックします。
印刷後に、%SYSTEMROOT%\System32\spool\PRINTERSに(管理者権限が必要) .shd ファイルがあります。ここに、実際に印刷したときの設定が入っています。
SHDファイルのフォーマットは http://www.undocprint.org/formats/winspool/shd のあたりを参照。
最近のだと、シグニチャに SHD_SIGNATURE_WIN2012 があるはずなので、シグニチャの部分は違っているかも。
また、ぱっと見ただけでは32ビットと64ビットの区別が付きません。64ビットの場合、offset の DWORD が QWORD になっているので注意。
この中で、offDevMode の値が、印刷時の設定を記録しているアドレスです。この値まで、ファイルを読み飛ばします。
その後、https://msdn.microsoft.com/en-us/library/windows/desktop/dd183565.aspx の DEVMODE 構造体が入っているので、読み取り、dmColor を確認します。
この値自体は DMCOLOR_COLOR か、DMCOLOR_MONOCHROME のどちらかのはずです。しかし、プリンターが独自の設定を持っているなら、dmDriverExtra に記録されている場所以降にある設定が有効です。これはメーカー独自のフォーマットなので、わかりません。

返信 編集キー/


管理者用

- Child Tree -