通过C#添加网络打印机

时间:2015-04-22 06:58:29

标签: c# printing wmi printers

我想通过C#将网络打印机添加到Windows用户帐户。 我使用以下代码执行此操作:

public bool AddPrinter(string printer)
{
    var managementScope = new ManagementScope(ManagementPath.DefaultPath);
    managementScope.Connect();

    var printerClass = new ManagementClass(new ManagementPath("Win32_Printer"), null);
    var inputParameters = printerClass.GetMethodParameters("AddPrinterConnection");

    inputParameters.SetPropertyValue("Name", printer);

    var managementBaseObject = printerClass.InvokeMethod("AddPrinterConnection", inputParameters, null);

    if (managementBaseObject != null && Convert.ToInt32(managementBaseObject["ReturnValue"]) == 0)
    {
        return true;
    }

    return false;
}

作为参数我正在使用打印机的UNC路径。 这项工作到目前为止。我现在遇到的问题是,当使用打印机时,打印机的名称是打印机的UNC路径。在某些应用程序中,人们只看到路径的开头。

e.g:

\ myprinters.domain.intra ...

\ myprinters.domain.intra ...

\ myprinters.domain.intra ...

这样他们就无法看到要选择的打印机。

添加网络打印机时如何使用其他名称?

0 个答案:

没有答案