连接包含空格的网络打印机

时间:2015-02-18 13:02:46

标签: c# command-line-interface dos

我使用以下内容来映射网络打印机

using (Process p = new Process())
{
    Console.WriteLine("Attempting to add: {0}", newPrinter);
    p.StartInfo.FileName = "cmd.exe";
    p.StartInfo.Arguments = string.Format("/c start {0}", newPrinter);
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.Start();
    p.WaitForExit();

    if (Convert.ToInt16(row["IsDefault"]) != 0)
    {
        Console.WriteLine("Setting Default");
        NativeMethods.SetDefaultPrinter(newPrinter);
    }

当打印机名称包含空格时,它会在空格之前将其剪切掉。 如何通过空格识别打印机的UNC并将其连接?

1 个答案:

答案 0 :(得分:1)

怎么样

p.StartInfo.Arguments = string.Format("/c start \"{0}\"", newPrinter);

那会有用吗?

编辑:

或者改为使用WMI:https://stackoverflow.com/a/16044827/4550393