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:
<startup id="0">
<name>Realtek Audio Manager</name>
<process arguments="-s">C:Program FilesRealtekAudioHDARtkNGUI64.exe</process>
<delay>5</delay>
</startup>
This runs the specified process (C:Program Files...RtkNGUI64.exe -s
) after 5 seconds.
Now, three of the programs won't start, giving me a System.ComponentModel.Win32Exception
: "Das System kann die angegebene Datei nicht finden." ("The system was not able to find the specified file.")
But the XML is parsed correctly, and the file I want to start is at the location I specified in the XML file.
The problem concerns only these three files:
Intel HotkeysCmd - C:WindowsSystem32hkcmd.exe
Intel GFX Tray - C:WindowsSystem32igfxtray.exe
Intel Persistance - C:WindowsSystem32igfxpers.exe
I think that the problem comes from the location of the files: they all are located in C:WindowsSystem32, and all the other, working programs are located outside (C:Program Files, C:Program Files (x86), D:Program Files, %AppData%
)
Do I have to give my program some kind of access rights to start programs in C:WindowsSystem32? How would I do that?
If not, what could be the reason I get errors with these programs?
EDIT - my 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:WindowsSystem32igfxtray.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);
}
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…