title: System.ComponentModel.Win32Exception when starting process - file not found, but file exists
body: <p>I am trying to create a manager for my autostarts. It should read an XML file and then start my programs with a custom delay. For example:</p>
  
  <pre><code>&lt;startup id="0"&gt;
      &lt;name&gt;Realtek Audio Manager&lt;/name&gt;
      &lt;process arguments="-s"&gt;C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe&lt;/process&gt;
      &lt;delay&gt;5&lt;/delay&gt;
  &lt;/startup&gt;
  </code></pre>
  
  <p>This runs the specified process (<code>C:\Program Files\...\RtkNGUI64.exe -s</code>) after 5 seconds.</p>
  
  <p>Now, three of the programs won't start, giving me a <code>System.ComponentModel.Win32Exception</code>: "Das System kann die angegebene Datei nicht finden." ("The system was not able to find the specified file.")</p>
  
  <p>But the XML is parsed correctly, and the file I want to start is at the location I specified in the XML file.</p>
  
  <p>The problem concerns only these three files:<br>
  Intel HotkeysCmd - C:\Windows\System32\hkcmd.exe<br>
  Intel GFX Tray - C:\Windows\System32\igfxtray.exe<br>
  Intel Persistance - C:\Windows\System32\igfxpers.exe  </p>
  
  <p>I think that the problem comes from the location of the files: they all are located in C:\Windows\System32, and all the other, working programs are located outside (C:\Program Files, C:\Program Files (x86), D:\Program Files, <code>%AppData%</code>) </p>
  
  <p>Do I have to give my program some kind of access rights to start programs in C:\Windows\System32? How would I do that?</p>
  
  <p>If not, what could be the reason I get errors with these programs?</p>
  
  <p>EDIT - my code:</p>
  
  <pre><code>delegate(object o)
  {
      var s = (Startup) o;
      var p = new System.Diagnostics.Process
                  {
                      StartInfo =
                          new System.Diagnostics.ProcessStartInfo(s.Process, s.Arguments)
                  };
      try
      {
          s.Process = @"C:\Windows\System32\igfxtray.exe"; // For debugging purposes
          System.Diagnostics.Process.Start(s.Process);
          icon.ShowBalloonTip(2000, "StartupManager",
                              "\"" + s.Name + "\" has been started.",
                              System.Windows.Forms.ToolTipIcon.Info);
      }
      catch (System.ComponentModel.Win32Exception)
      {
          icon.ShowBalloonTip(2000, "StartupManager",
                              "\"" + s.Name + "\" could not be found.",
                              System.Windows.Forms.ToolTipIcon.Error);
      }
  }
  </code></pre>