Configure Virtual Printer Port Redirection

前端 未结 1 1317
感动是毒
感动是毒 2021-01-01 07:38

I need to configure a virtual printer port to redirect it to a external program(.exe file) through c# code. Right now I am able to install a virtual port with some customiz

相关标签:
1条回答
  • 2021-01-01 08:30

    I found out solution to the above problem. All the printer ports registered on the system are listed in registry under the key "SYSTEM\ControlSet001\Control\Print\Monitors\Redirected Port\Ports"

    Values under these keys can be edited to get the desired result. Below is the code to edit it using 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();
    
    0 讨论(0)
提交回复
热议问题