C# 如果在windows窗体中单击按钮时已启动,则不应再次启动可执行文件

C# 如果在windows窗体中单击按钮时已启动,则不应再次启动可执行文件,c#,.net,C#,.net,在我的表单中,当用户单击一个按钮时,我启动另一个可执行文件。该可执行文件在屏幕上显示另一个窗口 但是,当用户再次单击按钮时,如果第一个窗口仍然打开,我不想显示第二个窗口 如何执行此操作?是否正在使用进程。是否开始启动可执行文件?如果是这样,您可以保留进程ID,并查看该进程是否仍在运行。如果是,则不执行任何操作,如果不是,则重新启动该按钮。您可以禁用该按钮,然后使用Process.Start,只需等待返回对象的退出事件发生,然后再次启用该按钮 编辑简单地禁用按钮并不是防止流程再次启动的正确方法;这

在我的表单中,当用户单击一个按钮时,我启动另一个可执行文件。该可执行文件在屏幕上显示另一个窗口

但是,当用户再次单击按钮时,如果第一个窗口仍然打开,我不想显示第二个窗口


如何执行此操作?

是否正在使用进程。是否开始启动可执行文件?如果是这样,您可以保留进程ID,并查看该进程是否仍在运行。如果是,则不执行任何操作,如果不是,则重新启动该按钮。

您可以禁用该按钮,然后使用Process.Start,只需等待返回对象的退出事件发生,然后再次启用该按钮


编辑简单地禁用按钮并不是防止流程再次启动的正确方法;这只是向用户表明该按钮不能再次单击的标志。您应该使用标志/ManualResetEvent,并在流程启动时进行设置。在启动流程之前检查它,并在退出的事件中重置它。

我想你说的是一个错误。您是否有第二个应用程序(被调用的应用程序)的源代码,或者只有调用者的源代码?您可以枚举所有进程,并检查要调用的EXE是否已在运行。然后您可以激活该过程的窗口。