我正在使用 process.info,进程 start(); 在 c#.net 中单击按钮时调用 exe,但是每次单击按钮时,它都会调用 exe 并在任务栏上打开一个重复文件。我只想最大化任务栏上已经存在的 exe。
我面临的问题是单击按钮时一次又一次地打开同一个文件。有什么方法可以只打开一个 exe 并在按钮上单击它可以最大化 exe 文件(如果已经打开而不是重复条目)?
我正在使用 process.info,进程 start(); 在 c#.net 中单击按钮时调用 exe,但是每次单击按钮时,它都会调用 exe 并在任务栏上打开一个重复文件。我只想最大化任务栏上已经存在的 exe。
我面临的问题是单击按钮时一次又一次地打开同一个文件。有什么方法可以只打开一个 exe 并在按钮上单击它可以最大化 exe 文件(如果已经打开而不是重复条目)?
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