いつもお世話になっています。
同じLAN内に存在するプリンタ情報を
プリンタドライバ無しで取得する方法を探しています。
##試したこと
調べてみたところ
以下の方法がでてきました。
-
IPアドレスの第四オクテットに0~255までPingを打つ
-
WMIを使用する
ですが1はPingを打つのに時間がかかってしまい、現実的ではないと考えました(タイムアウト100ms)
また、PCが不安定になってしまう(PCが落ちてしまいました)こともあるので採用には至りませんでした。
2はWin32_PrinterをSELECTする方法ですが
どうもPCにインストールされているプリンタしか検索していないようで(調査不足?)
それ以外の検索方法が見つかっていません。
C#
1//1の例 2 3 const String ipAddr = "192.168.1."; 4 for (int i = 1; i <= 254; i++) 5 { 6 Ping p = new Ping(); 7 PingReply r = p.Send(ipAddr + i, 100); 8 // PINGの成否判定 9 if (r.Status == IPStatus.Success) 10 Console.WriteLine(ipAddr + i +"OK" ); 11 else 12 Console.WriteLine(ipAddr + i +"NG" ); 13 }
C#
1//2の例 2 3 System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_Printer"); 4 ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); 5 ManagementObjectCollection queryCollection1 = query1.Get(); 6 foreach (ManagementObject mo in queryCollection1) 7 { 8 Console.WriteLine("Printer Driver : " + mo["DriverName"].ToString()); 9 Console.WriteLine("Printer Driver : " + mo["Name"].ToString()); 10 }
##質問
果たしてLAN内に接続している「ドライバがインストールされていないプリンタ」の情報を取得することはできるのか?
また、どのように書けば再現できるのか?
調べど「インストールされているプリンタの一覧を取得」という記事が多く
全くヒントを得ることができていませんので
記事だけでもあるとありがたいです。。。
不備等ありましたらご指摘の程お願いいたします。
よろしくお願いいたしますm(_ _)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/13 23:18