C++でプログラムを行っています。対象OSはWindows 2000以降です。


プリンタのプロパティの「詳細設定」タブの設定内容をダイアログ等を表示することなく取得する方法を教えてください。
プリンタはOPENを行いハンドルを取得済みです。

回答の条件
  • 1人2回まで
  • 登録:2009/01/17 23:54:21
  • 終了:2009/01/24 23:55:03

回答(2件)

id:otasuketyan No.1

otasuketyan回答回数41ベストアンサー獲得回数02009/01/18 12:06:50

ポイント35pt

C++(VisualC)の管轄外なので使用することはできません。

それよりも上級のプログラム開発環境を使わないといけません。

id:aki_tombo

回答ありがとうございました。

出来ないことがわかってあきらめがつきました。

2009/01/19 00:21:42
id:ardarim No.2

ardarim回答回数897ベストアンサー獲得回数1452009/01/19 01:13:42

ポイント35pt

取得するだけでよければ、該当の設定データはレジストリに格納されています。

従って、レジストリリードだけで取得可能です。

以下はXPマシンのレジストリエディタで確認した内容で、公式情報ではありませんが、プロパティ画面の内容は即時に反映されるようです。


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\プリンタ名]

"Attributes"bit12...「詳細な印刷機能を無効にする」
bit9...「スプールされたドキュメントを最初に印刷する」
bit7...「一致しないドキュメントを保留する」
bit1...「プリンタに直接印刷データを送る」
bit0...「全ページをスプールしてから送る」


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\プリンタ名\DsSpoller]

"printStartTime"
"printEndTime"
開始時刻、終了時刻(開始、終了とも0の場合は「常に利用可能」を意味)
"priority"優先順位
"driverName"ドライバ名
"printKeepPrintedJobs"「印刷後ドキュメントを残す」

id:aki_tombo

とてもとても助かります!

回答をありがとうございました。

あきらめていたので確認が遅くなってすみません。

2009/01/22 01:09:03
  • id:qnighy
    なお、C++でプログラミングというだけだと、QtやGtkといったWindowsAPIと違うものを想像する僕みたいなひねくれものもいるので、ぜひ、Win32APIで、と注釈を入れておくとみんな幸せになれるかなと思いました。

  • id:aki_tombo
    了解です。
    確かに情報が足りていませんでした。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません