相关疑难解决方法(0)

创建单实例WPF应用程序的正确方法是什么?

在.NET(而不是Windows窗体或控制台)下使用C#和WPF ,创建只能作为单个实例运行的应用程序的正确方法是什么?

我知道这与一些叫做互斥的神秘事物有关,我很少能找到一个不愿意停下来解释其中一个是什么的人.

代码还需要通知已经运行的实例用户尝试启动第二个,并且如果存在任何命令行参数,也可以传递.

.net c# wpf mutex

631
推荐指数
16
解决办法
19万
查看次数

62
推荐指数
3
解决办法
10万
查看次数

将当前应用程序作为 Single Instance 运行并显示前一个实例

我刚刚实现了这段代码,该代码保护应用程序的单个实例,以免应用程序运行两次。

现在我想知道如何显示已经在运行的原始应用程序进程。

这是我在程序类中的代码:

static class Program
{
    [STAThread]
    static void Main()
    {
        const string appName = "MyappName";
        bool createdNew;
        mutex = new Mutex(true, appName, out createdNew);

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form form = new Form1();

        if (!createdNew)
        {
            form.Show();  <<=========================== NOT WORKING
            form.Visible = true; <<===================== None
            form.TopMost = true; <<===================== of
            form.BringToFront(); <<===================== these working!
            form.WindowState = FormWindowState.Maximized;
            return;
        }
        Application.Run(form);
    }        private static Mutex mutex = null;
}
Run Code Online (Sandbox Code Playgroud)

c# single-instance ui-automation winforms

4
推荐指数
1
解决办法
3149
查看次数

标签 统计

c# ×3

.net ×2

winforms ×2

mutex ×1

single-instance ×1

ui-automation ×1

windows ×1

wpf ×1