プリンタのステータスに関する基本的な情報を得るためにプリンタに「話す」コードを書く方法はありますか?私が本当に興味を持っていることは、紙がなくなってしまったのか、紙づまりがあるのかを知ることです。このタイプのものにSystem.Managementライブラリを使用する必要がありますか?プリンタに話をする
PS - 特定のPCに設定されているすべてのプリンタを保持する方法を知っておくと便利です。それについてどうやって行きますか?
プリンタのステータスに関する基本的な情報を得るためにプリンタに「話す」コードを書く方法はありますか?私が本当に興味を持っていることは、紙がなくなってしまったのか、紙づまりがあるのかを知ることです。このタイプのものにSystem.Managementライブラリを使用する必要がありますか?プリンタに話をする
PS - 特定のPCに設定されているすべてのプリンタを保持する方法を知っておくと便利です。それについてどうやって行きますか?
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
}
LINQ to WMI apiも使用できます。
*ジョーク帽子を置く*私の父はプリンターであり、私は彼に毎日話す。 –
プログラミングにこだわるオラフル!! :) – Vidar