使用できるプリンター名を取得するには?

解決


スズ  2001-08-22 09:18:15  No: 74783  IP: [192.*.*.*]

使用できるプリンター名を取得したいのですが・・・。
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

編集 削除
Say  2001-08-22 12:54:15  No: 74784  IP: [192.*.*.*]

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に
はりつけてみましたが、普通に表示されます。

問題はほかのところにあるような気がします。

編集 削除
すず  2001-08-22 13:59:41  No: 74785  IP: [192.*.*.*]

ありがとうございました。
すいません。なにぶん始めたばかりで・・・。
えっと、ActiveXでも動くって事ですよね?
でも、そうすると原因がさっぱり分からないのですが・・・。
system32の中にプログラムを入れてるんですが、
入れてる場所が悪いとかなのでしょうか?

編集 削除
Say  2001-08-23 13:54:34  No: 74786  IP: [192.*.*.*]

フォルダについては、参照設定できているのなら問題ないと思います。
ActiveXをどうやってつくったか?VBからどう利用しているか?が
わからないと、原因の推定はむずかしいです。

編集 削除
スズ  2001-08-24 09:27:10  No: 74787  IP: [192.*.*.*]

いつも答えていただき、本当にありがとうございます。
おかげさまでプリンター名を取得できるようになりました。
原因としては、サーバーのプリンターの設定にありました。
ActiveXにすると印刷するCOMのユーザー(IISプロセス)に
対する権限をつけないと、印刷などは出来ないそうです。

編集 削除