OSがWin98の時にはVB6(SP5)でCommonDialogを使ってプリンターの用紙サイズ、印刷方向などをPCから自由に制御できていました。 しかしOSをXPにしてからは全く制御不能となり困っています。(印刷はできます) プリンター(EPSON 890C)は以前と同じで、また今でもWin98からの制御だけは正常に働いてくれています。 どこに問題があるのかどなたか教えてください。
編集 削除権限不足により、設定変更ができない…という事が考えられます。
現在のログインユーザ(というより、プログラムの実行ユーザ)が、
対象プリンタの設定を変更するための権限を備えているかどうかを
確認してみてください。
例えば、[印刷]は許可されていても、その他のアクセス許可(特に、[プリンタの管理]権限)が不足しているという事はありませんか?
魔界の仮面弁士様、早速のレスをありがとうございます。 このサイトは初めてですがこんなありがたいものとは知りませんでした。
「権限」については知識がありませんのでこれから勉強します。 しかし当方の現状を申し上げますと「NOTE PAD でもMSPAINTでも自由にプリンター制御ができているのに当方作成のものだけが言うことを聞いてくれない」と言う状況なのです。 「用紙情報を取得する」などプリンター情報の取得もできておりません。
VB+XPにおける共通の問題なのではないかと思っていましたがこうして皆様の情報をお聞きしてみるとこれは当方だけの問題だったのでしょうか? どこをcheckすれば良いのかなどのヒントがありましたらお願いします。
Printer.PaperSize = CommonDialog1.PaperSize
Printer.Orientation = CommonDialog1.Orientation
等の1文がWin2K以降必要になったハズ。
訂正:
Win2K以降←WinNT系では
参考:
http://support.microsoft.com/default.aspx?scid=kb;ja;173981&Product=vbJPN
鬱・・・。
CommonDialogにPaperSizeは無いですね。。。
参考:
http://forums.belution.com/ja/vb/000/006/38.shtml
ありがとうございます。 早速 Printer.Orientation・・・・の2行を入れて試しましたらプリンターは私の言うことを聞いてくれました。 これでXP使用開始以来の悩み、疑問が氷解しました。 と同時にCommonDialogの限界も感じました。
皆様、本当にありがとうございました。とても一人では到達できない情報を教えていただき、こんな有益なサイトを今まで知らなかったのが悔やまれました。 多謝!