System.ComponentModel.Win32Exception beim Start des Prozesses - Datei nicht gefunden, aber Datei vorhanden

Ich versuche, einen Manager für meine Autostarts zu erstellen. Es sollte eine XML-Datei lesen und dann meine Programme mit einer benutzerdefinierten Verzögerung starten. Zum Beispiel:

<startup id="0">
    <name>Realtek Audio Manager</name>
    <process arguments="-s">C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe</process>
    <delay>5</delay>
</startup>

Dies führt den angegebenen Prozess aus (C:\Program Files\...\RtkNGUI64.exe -s) nach 5 Sekunden.

Jetzt starten drei der Programme nicht und geben mir eineSystem.ComponentModel.Win32Exception: "Das System kann die angegebene Datei nicht finden." ("Das System konnte die angegebene Datei nicht finden.")

Das XML wird jedoch korrekt analysiert, und die zu startende Datei befindet sich an der Position, die ich in der XML-Datei angegeben habe.

Das Problem betrifft nur diese drei Dateien:
Intel HotkeysCmd - C: \ Windows \ System32 \ hkcmd.exe
Intel GFX Tray - C: \ Windows \ System32 \ igfxtray.exe
Intel Persistance - C: \ Windows \ System32 \ igfxpers.exe

Ich denke, dass das Problem vom Speicherort der Dateien herrührt: Sie befinden sich alle in C: \ Windows \ System32, und alle anderen Arbeitsprogramme befinden sich außerhalb (C: \ Programme, C: \ Programme (x86)). , D: \ Programme,%AppData%)

Muss ich meinem Programm Zugriffsrechte geben, um Programme in C: \ Windows \ System32 zu starten? Wie würde ich das machen?

Wenn nicht, woran kann es liegen, dass bei diesen Programmen Fehler auftreten?

EDIT - mein 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);
    }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage