title: C# ProcessStartInfo Print Copies To Printer
body: <p>I want to be able to print multiple copies set from the printer dialogue and send them to the printer.</p>
  
  <pre><code>using (System.Windows.Forms.PrintDialog printerDialog = new System.Windows.Forms.PrintDialog())
  {
      string printer;
      if (printerDialog.ShowDialog() == DialogResult.OK)
      {
          printer = printerDialog.PrinterSettings.PrinterName;
          System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(GetDocPath("StickerBlank.docx", Client.ClientID.ToString()));
          for (int i = 0; i &lt; printerDialog.PrinterSettings.Copies; i++)
          {
              Thread.Sleep(3000);
              using (var regWord = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe"))
              {
                  //string arguments = String.Format(@"-t ""{0}"" ""{1}""", printerDialo, printer);
                  if (regWord == null)
                  {
                      info.Arguments = "\"" + printer + "\"";
                      info.CreateNoWindow = true;
                      info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                      info.UseShellExecute = true;
                      info.Verb = "Print";
                  }
                  else
                  {
                      info.Arguments = "\"" + printer + "\"";
                      info.CreateNoWindow = true;
                      info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                      info.UseShellExecute = true;
                      info.Verb = "PrintTo";
                  }
              }   
              System.Diagnostics.Process.Start(info);
          }
      }
  }
  </code></pre>
  
  <p>It works but the problem is that the word document which is my template opens  as much as copies are set from the printdialog. Is there a way to specify that i want 5 copies as arguments?</p>