2

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

我面临的问题是单击按钮时一次又一次地打开同一个文件。有什么方法可以只打开一个 exe 并在按钮上单击它可以最大化 exe 文件(如果已经打开而不是重复条目)?

4

2 回答 2

1

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

这是一个基本示例:

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

于 2010-02-06T21:31:46.693 回答
0

这应该会让你走上正轨: http ://www.webdevbros.net/2007/11/14/singelton-application-with-c/

于 2010-02-02T06:13:26.450 回答