我可以使用以下代码启动小程序:
if (File.Exists(content[1]))
{
Process process = new Process();
try
{
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = content[1];
process.StartInfo.CreateNoWindow = true;
process.Start();
SuccessMessage("Successfully launched " + content[0]);
//System.Diagnostics.Process.Start(content[1]);
}
catch (Exception e)
{
ErrorMessage("Couldn't start the process!");
ErrorMessage(e.Message);
}
}
content[1]
包含文件的路径。
我可以启动例如VLC,但我无法使用此代码启动Visual Studio。为什么呢?
答案 0 :(得分:4)
我试图运行你的代码并遇到同样的问题。 我得到的例外是:
C:\Users\MyUsername\Documents\Visual Studio 2012\Projects\ConsoleApplication20\Consol
eApplication20\bin\Debug>ConsoleApplication20.exe
Couldn't start the process!System.ComponentModel.Win32Exception (0x80004005): The requested operation requires elevation
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at ConsoleApplication20.Program.Main(String[] args) in c:\Users\MyUsername\Documen
ts\Visual Studio 2012\Projects\ConsoleApplication20\ConsoleApplication20\Program .cs:line 24
这是因为我的视觉工作室处于高度完整性级别,因为您可以阅读here 当我以管理员身份执行流程时(右键单击 - >以管理员身份运行),流程开始。在没有要求提升的情况下,流程无法启动具有更高完整性级别的其他流程。