C# 与打印机交谈
有没有一种方法可以编写一些代码,可以和打印机“对话”,从而获得一些关于打印机状态的基本信息?我真正感兴趣的是找出它是否已经用完了纸或是卡纸了——这类性质的事情。我应该使用系统管理库来管理这类东西吗C# 与打印机交谈,c#,printing,C#,Printing,有没有一种方法可以编写一些代码,可以和打印机“对话”,从而获得一些关于打印机状态的基本信息?我真正感兴趣的是找出它是否已经用完了纸或是卡纸了——这类性质的事情。我应该使用系统管理库来管理这类东西吗 PS-知道如何获取在特定PC上设置的所有打印机也很方便。您将如何操作?使用系统从打印机获取信息。管理相对简单 //Declare WMI Variables ManagementObject MgmtObject; ManagementObjectCollection Mgmt
PS-知道如何获取在特定PC上设置的所有打印机也很方便。您将如何操作?使用系统从打印机获取信息。管理相对简单
//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_打印机的方法和属性。关于你的问题:
//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
}
你也可以用。开玩笑说我父亲是一名印刷工,我每天都和他说话。坚持编程!!:)