【问题标题】:Return to an already open application when a user tries to open a new instance当用户尝试打开新实例时返回到已打开的应用程序
【发布时间】:2008-09-18 16:40:05
【问题描述】:

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

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

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

【问题讨论】:

  • 您介意添加一两个标签,以便我们知道上下文是什么吗?我假设您使用的是 Microsoft Windows,但我不知道您使用的是什么语言。

标签: c# .net windows vb.net


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    The Weekly Source Code 31- Single Instance WinForms and Microsoft.VisualBasic.dll

    【讨论】:

    • +1 - 一种更简洁的方法,它使用 Microsoft.VisualBasic 程序集而不是接受答案中的所有 Win32 API gunk。还允许您将命令行参数传递回正在运行的实例 - 一个不错的奖励。
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      在 Form_Load 此代码有效。

       If App.PrevInstance = True Then
           MsgBox "Already running...."
           Unload Me
           Exit Sub
       End If
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-30
        • 2019-11-05
        • 1970-01-01
        • 2014-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多