配置虚拟打印机端口重定向

我需要配置一个虚拟打印机端口,通过c#代码将其重定向到外部程序(.exe文件)。 现在我可以通过一些自定义安装虚拟端口(感谢bghh代码)。 附图说明了要求。 任何帮助将受到高度赞赏。

手动配置虚拟打印机端口重定向

我找到了解决上述问题的方法。 在系统上注册的所有打印机端口都在“ SYSTEM \ ControlSet001 \ Control \ Print \ Monitors \ Redirected Port \ Ports ”键下的注册表中列出

可以编辑这些键下的值以获得所需的结果。 下面是使用c#编辑它的代码。

bool found = false; string portName = "testing:"; RegistryKey PrinterPort = Registry.LocalMachine.OpenSubKey("SYSTEM\\ControlSet001\\Control\\Print\\Monitors\\Redirected Port\\Ports", true); foreach (string pp in PrinterPort.GetSubKeyNames()) { if (pp == portName) { PrinterPort = Registry.LocalMachine.OpenSubKey("SYSTEM\\ControlSet001\\Control\\Print\\Monitors\\Redirected Port\\Ports"+"\\"+portName, true); found = true; break; } } if (found) { PrinterPort.SetValue(@"Arguments", "@C:\\gs\\pdfwrite.txt -sOutputFile=\"d:\\hello.pdf\" -c .setpdfwrite -f -"); PrinterPort.SetValue(@"Command", "c:\\gs\\bin\\gswin32c.exe"); PrinterPort.SetValue(@"Delay", 0x12c); PrinterPort.SetValue(@"LogFileDebug", 0x0); PrinterPort.SetValue(@"LogFileName", ""); PrinterPort.SetValue(@"LogFileUse", 0x0); PrinterPort.SetValue(@"Output", 0x0); PrinterPort.SetValue(@"Printer", "Send To Cool Printer"); PrinterPort.SetValue(@"PrintError", 0x0); PrinterPort.SetValue(@"RunUser", 0x0); PrinterPort.SetValue(@"ShowWindow", 0x0); } PrinterPort.Close();