2009-05-20 12 views
7

プリンタのステータスに関する基本的な情報を得るためにプリンタに「話す」コードを書く方法はありますか?私が本当に興味を持っていることは、紙がなくなってしまったのか、紙づまりがあるのか​​を知ることです。このタイプのものにSystem.Managementライブラリを使用する必要がありますか?プリンタに話をする

PS - 特定のPCに設定されているすべてのプリンタを保持する方法を知っておくと便利です。それについてどうやって行きますか?

+0

*ジョーク帽子を置く*私の父はプリンターであり、私は彼に毎日話す。 –

+0

プログラミングにこだわるオラフル!! :) – Vidar

答えて

9

System.Managementを使用してプリンタから情報を取得するのは比較的簡単です。

//Declare WMI Variables 
    ManagementObject MgmtObject; 
    ManagementObjectCollection MgmtCollection; 
    ManagementObjectSearcher MgmtSearcher; 

    //Perform the search for printers and return the listing as a collection 
    MgmtSearcher = new ManagementObjectSearcher("Select * from Win32_Printer"); 
    MgmtCollection = MgmtSearcher.Get(); 

    foreach (ManagementObject objWMI in MgmtCollection) 
    { 
     //Do whatever action you want with the Printer 
    } 

Win32_Printerのメソッドとプロパティについては、http://msdn.microsoft.com/en-us/library/aa394363.aspxを参照してください。あなたの質問の場合:

//Test whether a Win32_Printer is out of paper or jammed 
int state = Int32.Parse(objWMI["PrinterState"]); 
if (state == 4) { 
    //Paper Jam 
} else if (state == 5) { 
    //Paper Out 
} 
関連する問題