当用户试图打开一个新的实例时,返回到一个已经打开的应用程序

这是我一直未能弄清楚的问题。 防止第二个实例是微不足道的,并且有很多方法,但是,将已经运行的过程带回来不是。 我想要:

  • 最小化:撤销最小化并将运行实例放在最前面。
  • 在其他窗口后面:将应用程序放在前面。

我使用的语言是VB.NET和C#。

我发现这个代码是有用的。 它执行现有应用程序的检测和可选激活:

http://www.codeproject.com/KB/cs/cssingprocess.aspx

如果使用.NET,使用内置的.NET功能看起来更简单,更直接:

每周源代码31-单实例WinForms和Microsoft.VisualBasic.dll

这些链接可能有帮助:

http://www.ai.uga.edu/mc/SingleInstance.html

它有代码来检测另一个实例正在运行,不知道一旦你有实例,你可以用它做什么。