21

这是一个我有一段时间无法弄清楚的问题。防止第二个实例是微不足道的,并且有很多方法,但是,恢复已经运行的进程不是。我想:

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

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

4

4 回答 4

13

我发现这段代码很有用。它对现有应用程序进行检测和可选激活:

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

于 2008-09-18T16:46:35.543 回答
8

如果您使用的是 .NET,则使用内置 .NET 功能似乎更容易、更直接:

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

于 2008-09-18T16:46:58.773 回答
2

这些链接可能会有所帮助:

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

它有代码来检测另一个正在运行的实例,但不确定一旦你得到了实例你能用它做什么。

于 2008-09-18T16:42:54.273 回答
1

在 Form_Load 中,此代码有效。

 If App.PrevInstance = True Then
     MsgBox "Already running...."
     Unload Me
     Exit Sub
 End If
于 2020-10-20T13:00:38.583 回答