// I believe these virtual port parameters are specific to printmon public void ConfigureVirtualPort(MhwPrinter mhwPrinter, PdfEngine pdfEngine) { var filePattern = "%r-%u-%Y%m%d-%H%n%s.pdf"; string userCommand = string.Format( @"{0} -dSAFER -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=""\\.\pipe\{1}\%u"" -c ""[ /MhwFilename (%f) /DOCINFO pdfmark"" -f -", pdfEngine.PathExe, mhwPrinter.PipeRoot); string keyName = string.Format(@"SYSTEM\CurrentControlSet\Control\Print\Monitors\{0}\{1}", mhwPrinter.MonitorName, mhwPrinter.PortName); Registry.LocalMachine.CreateSubKey(keyName); RegistryKey regKey = Registry.LocalMachine.OpenSubKey(keyName, true); // ReSharper disable once PossibleNullReferenceException regKey.SetValue("OutputPath", string.Empty, RegistryValueKind.String); regKey.SetValue("FilePattern", filePattern, RegistryValueKind.String); regKey.SetValue("Overwrite", 0, RegistryValueKind.DWord); regKey.SetValue("UserCommand", userCommand, RegistryValueKind.String); regKey.SetValue("ExecPath", string.Empty, RegistryValueKind.String); regKey.SetValue("PipeData", 0x1, RegistryValueKind.DWord); regKey.SetValue("WaitTermination", 0, RegistryValueKind.DWord); regKey.Close(); }
public void RemovePrinter(MhwPrinter mhwPrinter) { winspool.DeletePrinter(mhwPrinter.PrinterName, mhwPrinter.PortName, mhwPrinter.MonitorName, mhwPrinter.DriverName, COMMENT); }
protected JobMonitor(MhwPrinter mhwPrinter) { PipeName = mhwPrinter.GetUserPipe(); }
public void AddPrinter(MhwPrinter mhwPrinter) { winspool.AddPrinter(mhwPrinter.PrinterName, mhwPrinter.PortName, mhwPrinter.DriverName, COMMENT); }