C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.5788 の関連記事表示

<< 0 >>
■5788  プリンタのポート番号を取得したい
□投稿者/ nana* -(2007/07/23(Mon) 19:56:57)

    分類:[VB6 以前] 

    新米プログラマです 宜しくお願いします。

    プログラムを実行する端末に接続されているある特定のプリンタのポート番号をIPアドレス\ポート番号形式で取得したいと考えています。

    このコーディングでは、ポート番号をIPアドレス\ポート番号形式で取得することが出来ずに困っています。
    Dim X As Printer

    For Each X In Printers
    If X.DeviceName = "特定のプリンタ" Then
    Set Printer = X
    Exit For
    End If
    Next


    WMIを使用すれば取得可能らしいのですが、WMIに関する技術力不足のため
    他に取得する方法は無いか(例えばAPIを使用してレジストリの値を取得する等)調べています。


    どなたかご存知の方がいらっしゃったら教えていただきたいです。
    宜しくお願いします。
親記事 /過去ログ16より / 関連記事表示
削除チェック/

■5791  Re[1]: プリンタのポート番号を取得したい
□投稿者/ 魔界の仮面弁士 -(2007/07/23(Mon) 21:11:41)
    2007/07/23(Mon) 21:12:09 編集(投稿者)

    No5788 (nana* さん) に返信
    > ある特定のプリンタのポート番号をIPアドレス\ポート番号形式で取得したいと考えています。
    (中略)
    > WMIを使用すれば取得可能らしいのですが、WMIに関する技術力不足のため

    WMI でよければ、これでどうでしょう。


    Option Explicit
    Private Sub Form_Load()
    Dim prn As Object
    For Each prn In GetObject("winmgmts:").InstancesOf("Win32_Printer")
    Debug.Print "名前="; prn.Name
    Debug.Print "モデル="; prn.DriverName
    Debug.Print "ポート="; prn.PortName
    Debug.Print "---------------"
    Next
    End Sub


    http://msdn2.microsoft.com/en-us/library/Aa394363.aspx
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5804  Re[2]: プリンタのポート番号を取得したい
□投稿者/ nana* -(2007/07/24(Tue) 09:18:46)
    No5791 (魔界の仮面弁士 さん) に返信
    > 2007/07/23(Mon) 21:12:09 編集(投稿者)
    >
    > ■No5788 (nana* さん) に返信
    >>ある特定のプリンタのポート番号をIPアドレス\ポート番号形式で取得したいと考えています。
    > (中略)
    >>WMIを使用すれば取得可能らしいのですが、WMIに関する技術力不足のため
    >
    > WMI でよければ、これでどうでしょう。
    >
    >
    > Option Explicit
    > Private Sub Form_Load()
    > Dim prn As Object
    > For Each prn In GetObject("winmgmts:").InstancesOf("Win32_Printer")
    > Debug.Print "名前="; prn.Name
    > Debug.Print "モデル="; prn.DriverName
    > Debug.Print "ポート="; prn.PortName
    > Debug.Print "---------------"
    > Next
    > End Sub
    >
    >
    > http://msdn2.microsoft.com/en-us/library/Aa394363.aspx


    魔界の仮面弁士 さんお返事ありがとうございます。

    書き方が悪く 申し訳ありません。
    自分がWMIについての理解が浅く、社内でも詳しいエンジニアが居ないようなので
    後々の運用と開発の生産性を考えて WMIを使用せずに情報を取得したいと考えているのです。

    やはり、難しいのでしょうか??
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5809  Re[3]: プリンタのポート番号を取得したい
□投稿者/ 中博俊 -(2007/07/24(Tue) 10:08:07)
>
    誰かがやらなければ誰もわからないですよね?
    あえて難しいやり方をする方が簡単だなんて、哲学的ですね。
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5810  Re[3]: プリンタのポート番号を取得したい
□投稿者/ Moo -(2007/07/24(Tue) 10:16:18)
>
    No5804 (nana* さん) に返信
    > 自分がWMIについての理解が浅く、社内でも詳しいエンジニアが居ないようなので
    > 後々の運用と開発の生産性を考えて WMIを使用せずに情報を取得したいと考えているのです。

    「Windowsの管理」を考えるのであれば、まさしくWMIをおすすめします。
    http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnwmi/htm/wmi.asp
    を一読すれば考え方が変わるかもしれません
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5815  Re[4]: プリンタのポート番号を取得したい
□投稿者/ れい -(2007/07/24(Tue) 11:03:25)
    No5810 (Moo さん) に返信
    > ■No5804 (nana* さん) に返信
    >>自分がWMIについての理解が浅く、社内でも詳しいエンジニアが居ないようなので
    >>後々の運用と開発の生産性を考えて WMIを使用せずに情報を取得したいと考えているのです。
    >

    「HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\」

    ここに情報は入ってますから、
    これを見ればわかりますが。

    運用と開発の生産性を考えるならWMIを使うべきでしょう。
    全てを理解する必要もないわけですし。
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5814  Re[4]: プリンタのポート番号を取得したい
□投稿者/ nana* -(2007/07/24(Tue) 10:49:18)
    No5810 (Moo さん) に返信
    > ■No5804 (nana* さん) に返信
    >>自分がWMIについての理解が浅く、社内でも詳しいエンジニアが居ないようなので
    >>後々の運用と開発の生産性を考えて WMIを使用せずに情報を取得したいと考えているのです。
    >
    > 「Windowsの管理」を考えるのであれば、まさしくWMIをおすすめします。
    > http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnwmi/htm/wmi.asp
    > を一読すれば考え方が変わるかもしれません


    お返事ありがとうございます。


    教えていただいたページを拝見しました。
    WMIは、様々な情報が簡単に取得できて
    開発者にとってはとても嬉しい機能ですね。


    自分がやろうとしているのはごくフツウの帳票印刷です。
    プリンタの稼動チェック部品の入力インターフェースがIPアドレス\ポート番号形式を指定しているので
    なんとか情報を取得しようとしています。


    APIは使用したプログラムがたくさん稼動している実績があるので
    お客様も社内の人間もそんなに抵抗は無いと思うのですが
    今までに実績が無い技術を利用するときは、
    品質保証の観点と運用面・生産性から圧力がかかると予想し、何とか打開策は無いかと考えているところです。


    個人的には、
    十分な品質を確保できるだけの技術力が自分にあり、
    運用と生産性から見て利益を確保できるなら
    便利な技術は積極的に使用するべきと思っています。
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5818  Re[5]: プリンタのポート番号を取得したい
□投稿者/ れい -(2007/07/24(Tue) 11:14:50)
    No5814 (nana* さん) に返信
    > 自分がやろうとしているのはごくフツウの帳票印刷です。
    > プリンタの稼動チェック部品の入力インターフェースがIPアドレス\ポート番号形式を指定しているので
    > なんとか情報を取得しようとしています。

    もしかして、
    ActiveDirectoryから取りたいとか、
    NetBEUIとかNetBIOS over TCP/IPで探したいという話でしょうか?

    だとするとWMIもレジストリもはずれなんですが。




記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5850  Re[5]: プリンタのポート番号を取得したい
□投稿者/ Jitta -(2007/07/24(Tue) 21:52:08)
    No5814 (nana* さん) に返信

     Win32_Printer では、プリンタの情報までしかわかりません。IP アドレスは、ポートが持っている情報ですので、Win32_Printer から PortName をキーに、Win32_TCPIPPrinterPort を引っ張ります。
    http://msdn2.microsoft.com/en-us/library/aa394492.aspx

     ただ、これでとれるのは Standard TCP/IP Port だけです(名前からわかると思うけど)。メーカー独自のポートモニタを実装している場合、そっちからはとれません。
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5961  Re[6]: プリンタのポート番号を取得したい
□投稿者/ nana* -(2007/07/27(Fri) 11:01:57)
    No5850 (Jitta さん) に返信
    > ■No5814 (nana* さん) に返信
    >
    >  Win32_Printer では、プリンタの情報までしかわかりません。IP アドレスは、ポートが持っている情報ですので、Win32_Printer から PortName をキーに、Win32_TCPIPPrinterPort を引っ張ります。
    > → http://msdn2.microsoft.com/en-us/library/aa394492.aspx
    >
    >  ただ、これでとれるのは Standard TCP/IP Port だけです(名前からわかると思うけど)。メーカー独自のポートモニタを実装している場合、そっちからはとれません。
    >


    遅くなりましたが・・・

    お返事ありがとうございます。

    色々検討した結果、教えていただいたWMIを使用することにしました。
    レジストリから値をとることも出来たのですが、
    今後の可溶性を考え、
    (プリンタに設定されているコメントの情報が必要になるかもしれなくて・・
    その場合、バッファから文字列を取得する処理が必要であり、処理が長くなる・・)
    WMIを使用することにしました。
    ご協力いただいたみなさん どうもありがとうございました。
記事No.5788 のレス / END /過去ログ16より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -