System.ComponentModel.Win32Exception podczas uruchamiania procesu - nie znaleziono pliku, ale istnieje plik
Próbuję utworzyć menedżera dla moich autostartów. Powinien przeczytać plik XML, a następnie uruchomić moje programy z niestandardowym opóźnieniem. Na przykład:
<startup id="0">
<name>Realtek Audio Manager</name>
<process arguments="-s">C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe</process>
<delay>5</delay>
</startup>
Spowoduje to uruchomienie określonego procesu (C:\Program Files\...\RtkNGUI64.exe -s
) po 5 sekundach.
Teraz trzy programy nie uruchomią się, dając miSystem.ComponentModel.Win32Exception
: „Das System kann die angegebene Datei nicht finden”. („System nie mógł znaleźć określonego pliku.”)
Ale XML jest poprawnie analizowany, a plik, który chcę uruchomić, znajduje się w lokalizacji określonej przeze mnie w pliku XML.
Problem dotyczy tylko tych trzech plików:
Intel HotkeysCmd - C: Windows System32 hkcmd.exe
Intel GFX Tray - C: Windows System32 igfxtray.exe
Intel Persistance - C: Windows System32 igfxpers.exe
Myślę, że problem pochodzi z lokalizacji plików: wszystkie znajdują się w C: Windows System32, a wszystkie inne działające programy znajdują się na zewnątrz (C: Program Files, C: Program Files (x86) , D: Pliki programowe,%AppData%
)
Czy muszę nadać programowi pewne prawa dostępu do uruchamiania programów w C: Windows System32? Jak bym to zrobił?
Jeśli nie, jaki może być powód, dla którego otrzymuję błędy w tych programach?
EDIT - mój kod:
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);
}
}