Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查进程是否已关闭_C#_.net_Winforms - Fatal编程技术网

C# 检查进程是否已关闭

C# 检查进程是否已关闭,c#,.net,winforms,C#,.net,Winforms,因此,在我的Windows窗体项目(.NET Framework 4.7.2)中,我试图检查进程是否已关闭,然后将文本更改回Inject 我所尝试的: private void按钮9\u单击(对象发送者,事件参数e) { easyexploit.LaunchExploit(); Process[]x=Process.getProcessByName(“RobloxPlayerBeta”); 如果(x.Length==1) { label2.Text=“注入”; }否则 { label2.Text

因此,在我的Windows窗体项目(.NET Framework 4.7.2)中,我试图检查进程是否已关闭,然后将文本更改回
Inject
我所尝试的

private void按钮9\u单击(对象发送者,事件参数e)
{
easyexploit.LaunchExploit();
Process[]x=Process.getProcessByName(“RobloxPlayerBeta”);
如果(x.Length==1)
{
label2.Text=“注入”;
}否则
{
label2.Text=“注入!”;
}
}
由于此代码仅在单击按钮9时更新,因此此代码不起作用。

有人知道我能做什么吗?

如果您想知道该进程何时退出,可以使用如下代码:

private void button1_Click(object sender, EventArgs e)
{
    Process x = Process.GetProcessesByName("RobloxPlayerBeta").FirstOrDefault();
    if (x != null)
    {
        x.EnableRaisingEvents = true;
        x.Exited += X_Exited;
    }
}

private void X_Exited(object sender, EventArgs e)
{
    Console.WriteLine("Roblox was closed.");
}

请注意,您必须将其设置为true才能工作。

您真的想只检查一次它是否关闭吗?或者您真的想问,一旦流程退出,如何更改标签文本?不管怎样,
LaunchExploit()
都让我不想帮你。
Process.Exited
event?Dmitry建议使用
Process.Exited
event对于带有按钮的事件驱动程序来说非常好。另一种选择是,一旦您找到了原始进程,您可以指示工作线程等待它退出,并表示感谢,祝您度过愉快的一天!