C#运行exe并等待其关闭

C#运行exe并等待其关闭,c#,windows,C#,Windows,希望你能帮我写下面的代码,当用户登录到某台电脑时,下面的程序就会运行。进程运行后exe关闭我想让电脑注销,下面的myProcess_Exited方法不运行,你能发现任何问题吗 谢谢 史蒂文 下面的那个很好用 Process proc = new Process(); private void myProcess_Exited(object sender, System.EventArgs e) { System.Diagnostics.Process p

希望你能帮我写下面的代码,当用户登录到某台电脑时,下面的程序就会运行。进程运行后exe关闭我想让电脑注销,下面的myProcess_Exited方法不运行,你能发现任何问题吗

谢谢 史蒂文


下面的那个很好用

    Process proc = new Process();

    private void myProcess_Exited(object sender, System.EventArgs e)
    {
        System.Diagnostics.Process proc1 = new System.Diagnostics.Process();
        proc1.StartInfo.FileName = "C:\\windows\\SysWOW64\\shutdown.exe";
        proc1.StartInfo.Arguments = "/l";
        proc1.StartInfo.UseShellExecute = false;
        proc1.StartInfo.RedirectStandardOutput = false;
        proc1.Start();
        Application.Exit();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo(@"K:\App\pc\stub.exe");
        p.Arguments = "-RunForever";
        Process proc = new System.Diagnostics.Process();
        proc.StartInfo = p;
        proc.StartInfo.CreateNoWindow = true;
        proc.EnableRaisingEvents = true;
        proc.Exited += new EventHandler(myProcess_Exited);
        proc.Start();
    }

您有一个输入错误:proc.StartInfo.FileName=“C:\\windows\\SysWOW64\\shutdown.exe”;应为proc1.StartInfo.FileName=“C:\\windows\\SysWOW64\\shutdown.exe”;您不应参考C:\windows,因为用户可能已将系统安装在其他驱动器上。改为使用Environment.GetFolderPath(…)方法。看:我有它的工作,代码是好的,这是另一个问题的形式。
    Process proc = new Process();

    private void myProcess_Exited(object sender, System.EventArgs e)
    {
        System.Diagnostics.Process proc1 = new System.Diagnostics.Process();
        proc1.StartInfo.FileName = "C:\\windows\\SysWOW64\\shutdown.exe";
        proc1.StartInfo.Arguments = "/l";
        proc1.StartInfo.UseShellExecute = false;
        proc1.StartInfo.RedirectStandardOutput = false;
        proc1.Start();
        Application.Exit();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo(@"K:\App\pc\stub.exe");
        p.Arguments = "-RunForever";
        Process proc = new System.Diagnostics.Process();
        proc.StartInfo = p;
        proc.StartInfo.CreateNoWindow = true;
        proc.EnableRaisingEvents = true;
        proc.Exited += new EventHandler(myProcess_Exited);
        proc.Start();
    }