使用できるプリンター名を取得したいのですが・・・。
VBでは出来たのですが、COM(ActiveX)にした場合、
同じ処理を行えないのです。
For文でプリンターが見つけられていないようなのですが、
どうしたら良いのでしょうか?
Public Function print_p() As String
Dim odjprn As Printer
For Each objprn In Printers
print_p = print_p + objprn.DeviceName + " "
Next
End Function
VB起動して、Activexコントロール選択して、
UserControl1にList1おいて、
Private Sub UserControl_Initialize()
Dim odjprn As Printer
For Each objprn In Printers
List1.AddItem objprn.DeviceName
Next
End Sub
なんてコードかいて
Activex Control InterFace Wizard にかけたあと
ocxにして、参照設定して別の新規Formに
はりつけてみましたが、普通に表示されます。
問題はほかのところにあるような気がします。
ありがとうございました。
すいません。なにぶん始めたばかりで・・・。
えっと、ActiveXでも動くって事ですよね?
でも、そうすると原因がさっぱり分からないのですが・・・。
system32の中にプログラムを入れてるんですが、
入れてる場所が悪いとかなのでしょうか?
フォルダについては、参照設定できているのなら問題ないと思います。
ActiveXをどうやってつくったか?VBからどう利用しているか?が
わからないと、原因の推定はむずかしいです。
いつも答えていただき、本当にありがとうございます。
おかげさまでプリンター名を取得できるようになりました。
原因としては、サーバーのプリンターの設定にありました。
ActiveXにすると印刷するCOMのユーザー(IISプロセス)に
対する権限をつけないと、印刷などは出来ないそうです。
ツイート | ![]() |