gpt4 book ai didi

c# - 如何从我的系统中未安装的网络获取打印机?

转载 作者:行者123 更新时间:2023-11-30 14:58:00 25 4
gpt4 key购买 nike

我想搜索网络中有多少打印机可用。我已经检查了 Installed printer 属性,它给了我系统上安装的那些打印机列表。

我的网络中有两台以上的打印机,其中只有一台显示在列表中,因为它安装在我的系统上。

如何从我的系统上未安装驱动程序或未连接到我的系统的网络中获取所有打印机列表。

最佳答案

我知道这篇文章已经很老了,但我一直在与同样的问题作斗争。

我最终设法解决了它,我希望下面的代码对某人有所帮助:

        using(var ds = new DirectorySearcher())
{
ds.SearchRoot = new DirectoryEntry("");
ds.Filter = "(|(&(objectCategory=printQueue)(name=*)))";

ds.PropertiesToLoad.Add("printername");
ds.PropertiesToLoad.Add("portname");
ds.PropertiesToLoad.Add("servername");
ds.PropertiesToLoad.Add("cn");
ds.PropertiesToLoad.Add("name");
ds.PropertiesToLoad.Add("printsharename");
ds.ReferralChasing = ReferralChasingOption.None;
ds.Sort = new SortOption("name", SortDirection.Descending);

using(var src = ds.FindAll())
{
foreach(SearchResult sr in src)
{
Console.WriteLine("------------------------------------");
Console.WriteLine(sr.GetDirectoryEntry().Name);
foreach (DictionaryEntry p in sr.Properties)
{
var propName = p.Key;
var propCollection = (ResultPropertyValueCollection)p.Value;
var propValue = propCollection.Count > 0 ? propCollection[0] : "";
Console.WriteLine(propName);
Console.WriteLine(propValue);
}
Console.WriteLine("------------------------------------");

}

}

}

如果您想返回所有属性以查看可用的属性,那么只需注释掉 ds.PropertiesToLoad 行,这将为您提供完整列表。

关于c# - 如何从我的系统中未安装的网络获取打印机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19902379/

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