gpt4 book ai didi

c# - 为什么在 Windows 中很难找到打印机状态?

转载 作者:可可西里 更新时间:2023-11-01 10:36:22 24 4
gpt4 key购买 nike

使用 C# - 我试图找到所有本地和在线打印机的列表(即已连接并准备好接受打印请求)

我知道打印机驱动程序可以工作 - 作业只会等到打印机重新联机,但我需要找到那些特定的联机。这些显然可用于 Windows,但 .net 框架似乎没有准确公开那些当前在线的内容。

我正在尝试使用许多不同的方法,但似乎没有一个能准确地工作

// Get a list of available printers.
var printServer = new PrintServer();
var printQueues = printServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections });
foreach (PrintQueue printQueue in printQueues)
{
Console.WriteLine(printQueue.IsOffline); // This works for IsOffline, but doesn't tell us those that are online - and it's not an inverse relationship
}

非常令人沮丧 - 任何帮助表示赞赏。

应该补充一下,我使用的是 Windows 8.1,该解决方案也适用于 win 7+

编辑:

所以给定以下打印机集合:

List of Printers - some offline

我希望看到类似

的内容
Getting all Printers
Send To OneNote 2013 : Online
Pack1 : Offine
Microsoft XPS Document Writer : Online
Fax : Online
EPSONB12B28 (XP-412 413 415 Series) : Offine
Brother MFC-9970CDW Printer : Online

但在我看到的任何状态下,它们总是报告为在线

最佳答案

我已经通过 native 驱动程序或使用 Windows Management Instrumentation (WMI) 类查询了几乎所有可以想到的 Windows 设备。

要开始,请阅读这篇包含 C# 源代码的文章:http://www.codeproject.com/Articles/80680/Managing-Printers-Programatically-using-C-and-WMI

此外,不是在 C# 中,而是在 VB 中,这里有一些关于同一主题的快速浏览信息:http://msdn.microsoft.com/en-us/library/aa394598(v=vs.85).aspx

完整的 WMI 引用:http://msdn.microsoft.com/en-us/library/aa394572(v=VS.85).aspx

干杯,祝你好运!

关于c# - 为什么在 Windows 中很难找到打印机状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289900/

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