只调用一次exe的过程

时间:2010-02-02 06:09:17

标签: .net single-instance

我正在使用process.info,进程start();在c#.net上单击按钮时调用exe,但每次单击按钮时它都会调用exe并在任务栏上打开一个重复的文件。我想最大化任务栏上已经存在的exe。

我面临的问题是它一次又一次地在按钮点击上打开相同的文件。 有没有什么办法可以只打开一次exe而且点击按钮它可以最大化exe文件,如果已经打开而不是重复输入?

2 个答案:

答案 0 :(得分:1)

Process.Start()会返回Process个对象。你可以做的是有一个类变量(例如Process startedProcess;),它在单击按钮时被初始化。如果该变量为null,则意味着该进程尚未启动,并且应该启动该应用程序,否则它已经在运行,我们应该忽略它。

这是一个基本的例子:

Process startedProcess = null;

public void button1_Clicked(object sender, EventArgs e)
{

     if ( startedProcess == null )
          startedProcess = Process.Start("path\\to\\process.exe");

}

如果您希望在应用程序已经运行的情况下自动切换到该窗口,那么.NET本身没有任何内置方法可以执行此操作。您将需要从user32.dll到DLLImports。可以在此页面的评论中找到一个示例:http://www.eggheadcafe.com/community/aspnet/14/21984/switch-to-another-runnin.aspx

答案 1 :(得分:0)

相关问题