C#应用程序因进程而保持打开状态

时间:2014-05-17 07:23:46

标签: c#

我对C#很新,所以我不确定这是否可能......

我尝试做的是使用应用程序表单通过Process启动其他程序,例如记事本,然后在记事本仍在运行时关闭原始应用程序。

     Process notePad = new Process();
        notePad.StartInfo.FileName = "notepad.exe";
        notePad.Start();
     Application.Exit();

根据我发现的内容,必须关闭/终止记事本Process(即notePad.Kill();)才能关闭启动应用程序。

然而,我希望记事本保持开放状态。

无论如何通过C#来实现这个目标吗?

干杯。

修改 我发现使用Environment.Exit(0);否定了我的问题,虽然我对为什么Application.Exit();被忽略/没有做任何事情感到有些困惑。

4 个答案:

答案 0 :(得分:2)

试试这个?

using(Process notePad = Process.Start("notepad.exe","")) { }
Application.Exit();

答案 1 :(得分:1)

如果你想在关闭表格后仍然打开记事本,请使用此代码

private void button1_Click(object sender, EventArgs e)
{
    Thread notepad_opener = new Thread(opener);
    notepad_opener.Start();
}
public void opener()
{
    Process.Start("notepad.exe");
    Application.Exit();
}

我试试这个并且记事本仍然打开:D

答案 2 :(得分:0)

您需要将UseShellExecute属性设置为True;见this page

答案 3 :(得分:0)

您可以保存已启动的处理ID:

int id = notePad.Id;

然后在你想要的时候杀死它:

Process.GetProcessById(id).Kill();