如果我尝试打开另一个实例,请将应用程序窗口置于前面

时间:2017-04-13 16:10:51

标签: c# wpf mutex

我在WPF应用程序中要满足以下要求:

  • 当您打开程序时(通过单击其快捷方式或双击其可执行文件),它会正常打开其MainWindow;
  • 如果您尝试在另一个实例正在运行时打开,而不是打开另一个窗口,它会将已经运行的内容带到前面,然后关闭。

目前我已经有了一种使用Mutex检测开放实例的方法,但我不知道如何将该实例的MainWindow调用到前面。

public partial class App : Application
{
    public static Mutex mutex;

    [STAThread]
    public static void Main(string[] args)
    {
        if (!IsFirstInstance())
        {
            CallOtherToFront();  // how to implement this??
            return;
        }

        var app = new App();
        app.InitializeComponent();
        app.Run();
    }

    public static bool IsFirstInstance()
    {
        mutex = new Mutex(true, "SmartFictitiousApplication");
        return mutex.WaitOne(TimeSpan.Zero, false);
    }
}

0 个答案:

没有答案