gpt4 book ai didi

c# - printDialog.PrinterSettings.IsValid 始终返回 true

转载 作者:行者123 更新时间:2023-11-30 23:26:12 27 4
gpt4 key购买 nike

我想检查我的默认打印机是否打开,如果没有打开,我想选择另一台打印机。我使用下面的代码来检查它是否打开,但它总是返回 true。任何帮助将不胜感激

bool printerIsOnline = false;
printerIsOnline = printDialog.PrinterSettings.IsValid;

最佳答案

如果您想检查打印机是否为默认打印机,您可以使用 PrintDialog,如下所示:

printDialog.PrinterSettings.PrinterName = "MyDefaultPrinterName";
bool printerIsOnline = false;
printerIsOnline = printDialog.PrinterSettings.IsDefaultPrinter;

如果你想检查打印机是否开启(已连接),你可以像这样使用 WMI 类:

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");
}

使用此代码,您可以访问打印机的许多属性:

All the properties of the printer

关于c# - printDialog.PrinterSettings.IsValid 始终返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36947963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com