Web页面启动本地App(Windows)

在浏览器中启动本地应用程序。windows下可以通过Windows注册表注册一个类协议来完成,从Web端启动(唤醒)本地App。

具体方法如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2]
@="rdp2"
"URL Protocol"="G:\\Test\\RemoteDesktopClient.Forms.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2\DefaultIcon]
@="%SystemRoot%\\system32\\url.dll,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2\Shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2\Shell\open]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rdp2\Shell\open\command]
@="\"Test\\RemoteDesktopClient.Forms.exe\" \"%1\" "

上述中注册了一个rdp2的协议。

在html用的使用也很简单

启动APP

其中xxx可以写入作为本地应用程序的参数启动。据体的参数格式由本地应用程序解释

例如:

启动APP

注册表协议会将整个URL作为参数1传递给本地应用程序。

void Main(string[] args){
  if(args.Length > 0){
    var protocalUrl = args[0];//参数为:rdp2://127.0.0.1:8080&123456
    //需要本地应用程序解释参数。
  }
}

当然也可以用接近于原生html的定义,例如:

启动APP

同样接收参数

void Main(string[] args){
  if(args.Length > 0){
    var protocalUrl = args[0];//参数为:rdp2://host=127.0.0.1:8080&password=123456
    //需要本地应用程序解释参数。
  }
}

以上关于Windows Web中启动本地应用的方法。实际使用中应该在本地应用安装时同时注册协议。
主要注意的是参数传递都是需要本地程序来处理的。并且参数只支持要给。(此处试过多个参数,但是传递不到值。望大神指教)。

你可能感兴趣的:(Web页面启动本地App(Windows))