C#运行exe并等待其关闭
希望你能帮我写下面的代码,当用户登录到某台电脑时,下面的程序就会运行。进程运行后exe关闭我想让电脑注销,下面的myProcess_Exited方法不运行,你能发现任何问题吗 谢谢 史蒂文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
下面的那个很好用
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();
}