我想检查我的defaultprinter是,如果它不是,我想选择另一台打印机。我使用下面的代码来检查它是否打开,但它始终返回true。 任何帮助,将不胜感激printDialog.PrinterSettings.IsValid返回true始终
bool printerIsOnline = false;
printerIsOnline = printDialog.PrinterSettings.IsValid;
我想检查我的defaultprinter是,如果它不是,我想选择另一台打印机。我使用下面的代码来检查它是否打开,但它始终返回true。 任何帮助,将不胜感激printDialog.PrinterSettings.IsValid返回true始终
bool printerIsOnline = false;
printerIsOnline = printDialog.PrinterSettings.IsValid;
如果要检查是否为默认打印机,你可以使用PrintDialog
如下:
printDialog.PrinterSettings.PrinterName = "MyDefaultPrinterName";
bool printerIsOnline = false;
printerIsOnline = printDialog.PrinterSettings.IsDefaultPrinter;
如果你想检查打印机是否在(连接),你可以这样使用WMI class
:
1-将参考文献System.Management.dll
添加到您的项目中。
2 - 使用在你的代码的参考:
using System.Management;
3 - 使用此代码来检查,如果打印机处于联机状态(连接):
bool printerIsOnline = true;
string printerName = "MyPrinterName";
string query = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}'", printerName);
ManagementObjectSearcher searcherPrinters = new ManagementObjectSearcher(query);
foreach (ManagementObject printer in searcherPrinters.Get())
{
printerIsOnline = !printer["WorkOffline"].ToString().Equals("True");
}
有了这个代码,您可以访问许多属性打印机:
我有我的默认打印机的名称,但当默认打印机关闭打印文本进入队列,我想要的是检查它是否关闭,然后选择另一台打印机。 –
谢谢Abdellah Oumghar。正是我想要的.. –
我改变了答案的代码,请测试它吗? –