相关疑难解决方法(0)

单实例窗口形成应用程序以及如何获取它的参考?

我有一个Windows窗体应用程序,当时只允许一个实例运行.我已经使用Mutex实现了Singleton.应用程序必须可以从命令行启动(带或不带参数).应用程序由脚本启动和退出.用户不能对其采取任何行动.

因此,应用程序的目的是简单的"指标"应用程序,它将为最终用户显示一些视觉和图形信息.最终用户无法对其进行任何操作,只需查看即可.它是Windows窗体应用程序,因为视觉和图形外观是相对容易的实现(你可以得到它最顶层,无边框等).

简单地说:当有人试图用退出命令行参数运行相同的应用程序时,如何退出当前运行的应用程序?

bool quit = (args.Length > 0 && args[0] == "quit") ? true : false;
using (Mutex mutex = new Mutex(false, sExeName))
{
    if (!mutex.WaitOne(0, true)) 
    {
        if (quit)
        {
            // This is the tricky part?
            // How can I get reference to "previous" launced 
            // Windows Forms application and call it's Exit() method.
        }
    } 
    else 
    {
        if (!quit)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# singleton mutex winforms

5
推荐指数
2
解决办法
7998
查看次数

标签 统计

c# ×1

mutex ×1

singleton ×1

winforms ×1