admin 管理员组

文章数量: 1184232

1、首先需要先写一个注册表文件;

 通过txt文本写,写完以后更改后缀名;

Windows Registry Editor Version 5.00


[HKEY_CLASSES_ROOT\liexplorer\Shell]


[HKEY_CLASSES_ROOT\liexplorer\Shell\Open]


[HKEY_CLASSES_ROOT\liexplorer\Shell\Open\command]
@="C:\\ArcgisApiDemo\\ArcgisApiDemo\\ArcgisApiDemo\\bin\\Debug\\ArcgisApiDemo.exe(这个地方就是本地exe文件的绝对路径)  \"%1\""


2、在html代码中加入<a href="liexplorer:传递的参数值" >名字随便起</a>(红色部分要和上面的注册表蓝色部分一样)

3、在WPF启动程序中设置单利模式启动

创建一个单利模式的类:

 class ProgramEntry
    {
        [STAThread]
        public static void Main(string[] args)(args即就是浏览器传过来的参数)
        {
            if (args.Length != 0)
            {
                System.Windows.MessageBox.Show("传的参数:"+ args[0]);
                
            }
            
            var manager = new SingleInstanceManager();
            manager.Run(args);
        }
    }
    /// <summary>
    /// 单利模式启动程序
    /// </summary>
    public class SingleInstanceManager : WindowsFormsApplicationBase
    {
        App _app;


        public SingleInstanceManager()
        {
            this.IsSingleInstance = true;
        }


        protected override bool OnStartup(StartupEventArgs e)
        {
            _app = new App();
            _app.Run(new MainWindow());
            return false;
        }


        protected override void OnStartupNextInstance(StartupNextInstanceEventArgs eventArgs)
        {
            base.OnStartupNextInstance(eventArgs);
            _app.Activate();
        }
    }

App.Xaml.cs中:

/// <summary>
        /// 程序启动入口
        /// 加入异常捕获
        /// </summary>
        /// <param name="e"></param>
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
        }


        /// <summary>
        /// 程序激活入口
        /// </summary>
        public void Activate()
        {
            this.MainWindow.Show();
            this.MainWindow.Activate();
            this.MainWindow.WindowState = WindowState.Maximized;
        }

本文标签: 超链接 浏览器 参数 文件 exe