gpt4 book ai didi

c# - 将应用程序注册到 URI 方案

转载 作者:可可西里 更新时间:2023-11-01 11:34:05 24 4
gpt4 key购买 nike

我有一个 wpf 应用程序,我已通过执行以下操作将其注册为 URI 方案。

HKEY_CLASSES_ROOT
-->myappname
-->shell
-->open
-->command
(Default) = "c:\pathtomyapp\app.exe"

太棒了!但是,我的应用程序强制一次只能运行一个实例。如何检测我的应用程序是否已在运行,例如将其置于前台?

最佳答案

您可以使用命名的互斥锁来检测应用程序是否已经在运行。或者,如果您有一个 GUI 应用程序,您可以从 VisualBasic's SingleInstance application 继承您的表单,它会为您做同样的事情。

  public class SingleInstanceController
: WindowsFormsApplicationBase
{
public SingleInstanceController()
{
// Set whether the application is single instance
this.IsSingleInstance = true;

this.StartupNextInstance += new
StartupNextInstanceEventHandler(this_StartupNextInstance);
}

void this_StartupNextInstance(object sender, StartupNextInstanceEventArgs e)
{
// Here you get the control when any other instance is
// invoked apart from the first one.
// You have args here in e.CommandLine.

// You custom code which should be run on other instances
}

protected override void OnCreateMainForm()
{
// Instantiate your main application form
this.MainForm = new Form1();
}
}

[STAThread]
static void Main(string[] args)
{
SingleInstanceController controller = new SingleInstanceController();
controller.Run(args);
}

无论何时用 C# 编写代码都没有关系,因为此类可作为 .Net 框架的一部分并适用于所有语言。

这是一个 wrapper for the WPF

关于c# - 将应用程序注册到 URI 方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15841820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com