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

わんくま同盟

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

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

■86338 / 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 に記録されている場所以降にある設定が有効です。これはメーカー独自のフォーマットなので、わかりません。

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: 印刷の設定方法 /Jitta →Re[3]: 印刷の設定方法 /夜叉丸
 
上記関連ツリー

印刷の設定方法 / 夜叉丸 (18/01/17(Wed) 13:51) #86315
Re[1]: 印刷の設定方法 / Jitta (18/01/19(Fri) 14:25) #86332
  └ 印刷の設定方法 / Jitta (18/01/20(Sat) 09:48) #86338 ←Now
    └ Re[3]: 印刷の設定方法 / 夜叉丸 (18/01/24(Wed) 12:23) #86381
      ├ Re[4]: 印刷の設定方法 / Jitta (18/01/24(Wed) 21:53) #86382
      └ Re[4]: 印刷の設定方法 / 魔界の仮面弁士 (18/01/25(Thu) 11:26) #86385
        └ Re[5]: 印刷の設定方法 / Jitta (18/01/29(Mon) 08:37) #86434
          └ Re[6]: 印刷の設定方法 / 夜叉丸 (18/01/31(Wed) 14:32) #86463
            └ Re[7]: 印刷の設定方法 / PANG2 (18/01/31(Wed) 15:37) #86465
              └ Re[8]: 印刷の設定方法 / 夜叉丸 (18/02/08(Thu) 15:14) #86525 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信