title: C# Starting a program from another program
body: <p>I have this method</p>
  
  <pre><code>private void StartSDCBackupSet() {
      using (Process p = new Process()) {
          p.StartInfo.FileName = "SDCBackup";
          try { 
              p.Start(); 
              BackIcon.ShowBalloonTip(5000, "Backup", "Editor for settings startet", ToolTipIcon.Info); 
          } catch (Exception) { 
              MessageBox.Show("Program til settings blev ikke fundet"); 
          }
      }
  }
  </code></pre>
  
  <p>According to the documentation I can find - and quite a lot of answers here -, it should start another program - SDCBackup.exe.</p>
  
  <p>It doesn't. And I HAVE tried adding the .exe to the filename, but it does not make a difference. I get the messagebox with the message...
  I have checked <code>p</code> and <code>StartInfo</code> and everything looks right. <code>StartInfo.UseShellExecute</code> is true.</p>
  
  <p>Debugging reveals, that it is the line <code>p.Start();</code> that produces the exception. And the Exception is a <code>System.ComponentModel.Win32Exception</code> with message:</p>
  
  <blockquote>
    <p>File not found</p>
  </blockquote>
  
  <p>Documentation says, that the code above does the excat same thing as <code>Run</code> in Windows menu, but it obviously does not.</p>
  
  <p>If I write <code>SDCBackup</code> in the RUN section of Windows menu, SDCBackup.exe is started as it should.
  (And SDCBackup.exe is a ClickOnce installation, that nobody really knows where to find - other than Windows itself...)</p>
  
  <p><strong>So why does my code not do the trick?</strong></p>