映射网络打印机c#

映射网络打印机c#,c#,networking,printing,C#,Networking,Printing,在C中是否可以使用以下约定获取网络打印机路径# computername\printername PrinterSettings。已安装的打印机提供打印机名称,但不提供路径信息 提前感谢这适用于打印机映射。您需要确保添加IWShurantimeLibrary作为参考: using IWshRuntimeLibrary; private void MappPrinter() { WshNetwork oNetwork = new WshNetwork();

在C中是否可以使用以下约定获取网络打印机路径#

computername\printername

PrinterSettings。已安装的打印机提供打印机名称,但不提供路径信息


提前感谢

这适用于打印机映射。您需要确保添加IWShurantimeLibrary作为参考:

    using IWshRuntimeLibrary;
    private void MappPrinter()
    {
        WshNetwork oNetwork = new WshNetwork();
        oNetwork.AddWindowsPrinterConnection("\\\\computername\\printername", "HPLJ6000","\\\\computername\\printername");
    }

获取此信息的一种快速而肮脏的方法是使用iwruntimelibrary库(wshom.ocx)

WshNetwork network=new WshNetwork();
var printers=network.EnumPrinterConnections();
对于(int i=0;i
…但更具前瞻性的方法是使用Winspool的PRINTER\u INFO\u 2结构中包含的信息,该结构是从GetPrinter方法返回的


OP询问的是如何获取打印机的网络路径,而不是如何将其添加为本地打印机。噢,我刚刚读了问题标题!顺便说一句,我很确定使用WMI查询可以读取已安装打印机的网络路径。我将在这里发布示例代码。对不起,答错了!
WshNetwork network = new WshNetwork();
var printers = network.EnumPrinterConnections();
for (int i = 0; i < printers.Count(); i += 2)
{
     Console.WriteLine(printers.Item(i) + " \t" + printers.Item(i+1));
}