掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
特定のプリンタにPrinterオブジェクトを割り当てるには? (ID:77246)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になっております。 VBから特定のプリンタで印刷するプログラムを作成しているのですが、 プリンタ名はユーザによって変更可能なため プリンタドライバ名を検索してあるプリンタドライバ名のプリンタに Printerオブジェクトを設定しています。 現在は、Microsoft WMI Scripting V1.1 Libraryを使用して 以下のような関数でコーディングしています。 プログラムの起動時に以下の関数を呼び出していますが、 若干起動に時間がかかってしまうため、他の方法を模索しています。 Win32 API のEnumPrintersとか使えそうなのですが、 いまいち使い方がわからずうまくいきません。 良い方法ございましたら、御教授ください。 '引数で指定されたプリンタドライバ名のプリンタにPrinterオブジェクトを設定 Public Function setPrinter(ByVal pstrDriverName As String) As Boolean Dim objWMIPrtSet As SWbemObjectSet Dim objWMIPrt As SWbemObject Dim objPrinter As Printer Set objWMIPrtSet = GetObject("winmgmts:").InstancesOf("Win32_Printer") For Each objWMIPrt In objWMIPrtSet If objWMIPrt.Properties_("DriverName") = pstrDriverName Then For Each objPrinter In Printers If objWMIPrt.Properties_("Caption") = objPrinter.DeviceName Then Set Printer = objPrinter Set objWMIPrtSet = Nothing Set objWMIPrt = Nothing Set objPrinter = Nothing setPrinter = True Exit Function End If Next End If Next Set objWMIPrtSet = Nothing Set objWMIPrt = Nothing Set objPrinter = Nothing setPrinter = False End Function
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.