• 締切済み

VB6でのプリンタ設定について

kiki_sの回答

  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.1

今一つ理解しかねますが・・・ 勝手に解釈してみましたが、 要は、作成したアプリが起動した時点で、 使用するプリンタを切り替えるという事でしょうか? 通常(プリンタA) アプリ起動(プリンタAからB) アプリ終了(プリンタBからA) VBのダイアログでは、用紙の向きなど基本的なものは反映されますが、 プリンタ固有の情報は設定も変更も反映されません。 プリンタの切り替えなどをする場合、APIを利用するのが一般的です。

noname#63886
質問者

補足

わかりづらい文章ですみませんでした。 改めて質問いたします。 通常使うプリンタの設定がA4縦とします。 メモ帳を起動して「ページ設定」「プリンタの設定」「プロパティ」の 順でクリックするとプリンタの設定画面が表示されます。 ここで用紙サイズをB5、印刷方向を横に変更してすべてのダイアログを閉じます。 再度、同じ行程をたどるとプリンタの設定画面には先ほど設定したとおり 用紙サイズはB5、印刷方向は横と表示されます。 メモ帳を終了するまでこの設定は保持されているようです。 これと同じことをしようと下記のようにしてみました。 しかし、設定画面を表示するとこまでは出来ましたがその後がわかりません。 OpenPrinter関数でプリンタのハンドルを取得して GetPrinter関数でPRINTER_INFO_2構造体を取得する そこからさらにDEVMODE構造体を取得する DEVNAMES構造体を設定して PRINTDLG関数でプリンタの設定画面を表示する 設定を変更して閉じる 再度、PRINTDLG関数でプリンタの設定画面を表示する場合 どのようにすれば先ほど設定したものとまったく同じもの を表示出来るのでしょうか? よろしくお願いします。

関連するQ&A

  • vbから印刷時に、プリンタの厚紙設定をしたい。

    出力先プリンタの切り替えや、用紙サイズや向きやトレイなどは設定できたのですが、 用紙の厚さ(普通紙なのか厚紙なのかなど)が設定できません。 どうしたらできるのでしょうか? おそらく、厚紙設定は、そのプリンタ固有の情報なのでvbに用意されている一般的なプロパティでは対応できず、そのプリンタのドライバとのやり取りが必要なのかな?となんとなく想像していますが、ネットで調べても、なかなか答えに結びつきません。 分かる方、お願いします。

  • VB6.0でのプリンタ設定について

    はじめまして。 現在VB6.0にて、プリンタダイアログを表示させずに、プリンタの変更~印刷を行うプログラムを作成しています。(とある印刷は別のプリンタで印刷のイメージです) 方法はWIN32APIとWMIの2通りがあるようですがなかなか作成することができません。 WIN32API使用に関しては特に??で勉強中です。 イメージの流れでは以下を考えています。 (1)通常使用プリンタのバックアップ (2)通常使用プリンタの変更 (3)印刷 (4)通常使用プリンタを戻す すいませんがご教授いただけませんでしょうか?

  • VB6でのネットワークプリンタ(OS:WInXP)に対する印刷

    ご存じの方がおられましたら教えていただきたいのですが・・・ 当方、VB6(SP6)でアプリを作成し印刷機能も作りました。 以前はWin2000からプリンタサーバー(Win2000につながっているプリンタ)に対してネットワーク印刷を行っていました。APIを使用して用紙方向等変更できてました。簡単な処理の流れとしては、 (1)現在選択されているプリンタの情報を取得し記憶しておく。 (2)用紙方向等の変更 (3)印刷 (4)記憶しておいた内容にプリンタを戻す と言う具合です。 ところが、社内環境がかわり、WinXPからプリンタサーバー(WinXPにつながったプリンタ)に対して上記の処理を行うとエラーが出力されます。 調べたところ、始めにOpenPrinter関数を呼んでいるのですがこの時点で戻り値が0(関数が失敗)が帰ってきています。 ソースは以下のような感じです(一部抜粋) ' 標準的な権利を要求することを示す定数の宣言 Public Const STANDARD_RIGHTS_REQUIRED = &HF0000 ' プリンタアクセス権の管理者権限を示す定数の宣言 Public Const PRINTER_ACCESS_ADMINISTER = &H4& ' プリンタアクセス権のユーザー権限を示す定数の宣言 Public Const PRINTER_ACCESS_USE = &H8& ' プリンタアクセス権すべての権限を示す定数の宣言 Public Const PRINTER_ALL_ACCESS = _ (STANDARD_RIGHTS_REQUIRED Or _ PRINTER_ACCESS_ADMINISTER Or _ PRINTER_ACCESS_USE) ' プリンタのオブジェクトハンドルを取得する関数の宣言 Declare Function OpenPrinter Lib "winspool.drv" _ Alias "OpenPrinterA" _ (ByVal pPrinterName As String, _ phPrinter As Long, _ pDefault As Any) As Long '**************************************************** '↓処理 ' プリンタ名を指定 strPrinterDeviceName = Printer.DeviceName ' プリンタアクセス権を指定 With udtPrinterDefaults .DesiredAccess = PRINTER_ALL_ACCESS End With ' プリンタのオブジェクトハンドルを取得 lngWin32apiResultCode = OpenPrinter(strPrinterDeviceName, lngPrinterHandle, udtPrinterDefaults) ↑ この変数の戻り値が0 試しに色々やってみました。 (1)WinXPからプリンタサーバー(OS:WinXP)  × (2)WinXPからプリンタサーバー(OS:Win2000)  ○ (3)プリンタサーバー(OS:WinXP)にアプリを ○ インストール後印刷 ※ローカルプリンタに対する印刷 うまくいかないのはプリンタサーバーがWinXPの時のみエラーが 出てしまうようです。 宜しくお願いします。

  • プリンターの設定

    EPSON PRINTER が3台あり 1台を通常使うプリンターに設定したい。 ※OKWAVEより補足:「EPSON社製品」についての質問です。

  • エクセルファイルを開くと「プリンタの設定」ダイアログが出る

    Excel2003を使用しているのですが、 あるエクセルのファイルを開こうとすると、 「プリンタの設定」ダイアログが表示されます。 ダイアログの中には、現在インストールされているプリンタの一覧が表示されていて、通常使用しているプリンタを選択してOKしても何度も聞き返されてきます。 他のファイルはこういうことを聞かれないのになぜでしょう。 そもそも出なく出来ますでしょうか。

  • プリンタのプロパティ設定について

    プリンタのプロパティ設定について お世話になっております。 プリンタの詳細設定について、お聞きしたいのですが 「スタートメニュー」→「設定」→「プリンタとFAX」→ 任意のプリンタを選択し、右クリック「プロパティ」→ ポートタブへ移動して「ポートの構成」で設定する内容は どこのファイルで情報を保持していますか? レジストリでしょうか? それともWindowsのシステムで制御している プリンタ関連の設定ファイルなどで持っているのでしょうか? それともプリンタアプリ? レジストリのHKLM\SYSTEM\ControlSet001(003)、ControlSet\Print\Printers配下は 確認しましたが、わかりませんでした。 ご存知の方がいらっしゃいましたら、具体的なファイルや レジストリを教えてほしいです。また、参考となる文献など ございましたら紹介していただきたいです。

  • プリンタ設定ユーティリティが開かずプリンター設定ができません

    色々と調べても分からなかったので質問させていただきます。 先日iBookのOSプログラムが壊れてしまったので、OSの再インストールをした所 様々なアプリケーションソフトが使えなくなってしまいました。なので、 それらの使えなくなったソフトもインストールし直していたのですが、 何故かプリンターの設定だけがうまく行きません。 マックOSX10.3.9:使用プリンターはエプソンのPX-V630 です。 ネットからドライバをダウンロードしインストールしてもパソコンに プリンターが認識されず、ならばとプリンター設定をしようとすると、 “アプリケーション printer Setup Utility は予期せぬ理由で終了しました” と 表示されてしまいます。何か解決方法はありませんでしょうか…? また、何か説明不足な点がありましたら、ご指摘ください。 どうぞよろしくお願い致します。

    • ベストアンサー
    • Mac
  • 通常使うプリンタの設定ができない

    一台のWindows Vistaマシンを家族2人で使用しています。 そのうち1人の方で「通常使うプリンタに設定」をしても有効になりません。 普通、「通常使うプリンタに設定」をすると設定したプリンタにチェックマークがつきますが、何度やってもチャックマークが付きません。 なお、もう1人の方では有効になっています。 ちなみに、通常使うプリンタに設定されていないだけで、印刷時にプリンタを選択できるWORDのようなアプリでは選択することで問題なく印刷できます。 しかし、通常使うプリンタが設定されていないと印刷できないEXCELなどは印刷できない状況です。 何か解決策をご存じないでしょうか?

  • Illustrator CS2の用紙設定について

    Illustrator CS2をMac OS10.3.9で使用しています。 プリンタはCanonのpostscriptプリンタです。 CS2からプリントの際のダイアログが変わり、 (CSからかもしれませんが、CSは使った事がないのでわかりません) 例えば「手差し」などの指定をする際に プリントダイアログ最下段の「プリンタ」をクリックし Illustrator10までと同様のプリンタダイアログを一旦呼び出し ここで「給紙」→「手差し」と設定しなくてはならなくなりました。 質問は以下の2点です。 1)この「手差し」の設定をしてプリントプリセットとして保存し、 次のプリントの際にこのプリセットを呼び出しても、 手差しが反映されません。(毎回手差しを設定し直さなければならない) 最下段の「プリンタ」から先で設定した事は プリセットとして使用できないのでしょうか? 2)この最下段の「プリンタ」からプリンタダイアログをいじり、 元のプリンタダイアログに戻ると、ダイアログ中心付近の 「用紙」の設定が勝手に変わってしまいます。 (私の場合は「A4」だったのが、勝手に「プリンタドライバで定義」となり、 用紙の向きが 縦→横になってしまいます) 長々とすみません。 CS2になってから手間が多く、仕事に時間がかかってしまいます。 わかる方いましたら教えてください。お願いいたします。

  • プリンター未設定

    携帯iphone8と 無線LANで 印刷機と繋げたいですが、プリンターの設定ができません。アプリを入れてプリンターの設定をするのですが、プリンターが表示されません。 パソコンは繋がりましたが、iPad iPhone が繋がりません。 初歩的なことかもしれませんが、教えていただけると助かります。 ※OKWAVEより補足:「EPSON社製品」についての質問です。