gpt4 book ai didi

c# - 打印机连接事件

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:15 25 4
gpt4 key购买 nike

我正在设计一个需要识别打印机是否已连接的应用程序。我知道 WMI 枚举连接的打印机的方法。但是如果应用程序启动后连接了打印机怎么办?我们有任何事件或 API 吗?或者我必须经常使用 WMI 代码检查?

为简单起见,我尝试了这样的 LocalPrintServer 类:

PrintQueue printQueue = null;

LocalPrintServer localPrintServer = new LocalPrintServer();

// Retrieving collection of local printer on user machine
PrintQueueCollection localPrinterCollection =
localPrintServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections });

System.Collections.IEnumerator localPrinterEnumerator =
localPrinterCollection.GetEnumerator();

while(localPrinterEnumerator.MoveNext())
{
// Get PrintQueue from first available printer
printQueue = (PrintQueue)localPrinterEnumerator.Current;

if (!printQueue.IsOffline)
{

string s = "Printer found " + printQueue.FullName.ToString();
listBox1.Items.Add(s);
bDeviceFound = true;
button1.Enabled = bDeviceFound;


}

您知道它会显示它在应用程序启动时运行的已安装打印机。问题是它无法识别应用程序启动后是否连接了打印机。如果我们有任何事件,我可以调用此方法重新枚举打印机,除非我应该使用线程或 while 循环??

谢谢

最佳答案

通过设置计时器来提取详细信息解决了这个问题。

关于c# - 打印机连接事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15918752/

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