使用浏览器自定义协议启动本地程序(.EXE文件)

比如,自定义协议名称为 myapp,要启动的本地程序为 myapp.exe。

1)首先向注册表添加如下内容:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\myapp]
@=""
"URL Protocol"=""

[HKEY_CLASSES_ROOT\myapp\DefaultIcon]
@="myapp.exe,1"

[HKEY_CLASSES_ROOT\myapp\shell]

[HKEY_CLASSES_ROOT\myapp\shell\open]

[HKEY_CLASSES_ROOT\myapp\shell\open\command]
@="\"d:\\myapp.exe\" \"%1\""

2)用 VS 写一个本地程序 myapp.exe。我这里写的是一个WPF程序:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    textBlock1.Text = string.Empty;
    string[] args = Environment.GetCommandLineArgs();
    foreach (var arg in args)
    {
        textBlock1.Text += arg + "\r\n";
    }
}

3)在 web 页面启动 myapp.exe

function myAppTest() {
    window.location = 'myapp://openAppTest';
}

4) 在浏览器地址栏录入 myapp://openAppTest 也可以启动 myapp.exe

 

启动 myapp.exe 的效果如下:

myapp.exe 会获取到命令行参数:myapp://openAppTest/

posted on 2018-11-30 16:54  大豆男生  阅读(1280)  评论(0编辑  收藏  举报

导航