C#中的启动过程并不适用于所有情况

时间:2013-07-28 14:10:25

标签: c#

我可以使用以下代码启动小程序:

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。为什么呢?

1 个答案:

答案 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 当我以管理员身份执行流程时(右键单击 - >以管理员身份运行),流程开始。在没有要求提升的情况下,流程无法启动具有更高完整性级别的其他流程。