网页启动SL应用程序 OOB

本文详细介绍了如何在网页上通过JavaScript调用本地OOB程序,并使用注册表实现程序的注册和快捷方式创建,解决了SL程序无法直接被网页调用的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在网页上启动已经注册协议的本地OOB程序:

1、在网页上用JS写调用

2、在打程序的安装包时写注册代码

我们的如下:

注册代码:

local Strs=String.Concat("\"",SessionVar.Get("%AppFolder%"));
 Strs=String.Concat(Strs,"\\Yongji.exe\" \"%1\"")

 Registry.CreateKey(HKEY_CLASSES_ROOT, "yongji");
 Registry.SetValue(HKEY_CLASSES_ROOT, "yongji", "", "URL:Yongji Protocol", REG_SZ);
 Registry.SetValue(HKEY_CLASSES_ROOT, "yongji", "URL Protocol", "", REG_SZ);
 Registry.CreateKey(HKEY_CLASSES_ROOT, "yongji\\DefaultIcon");
 Registry.SetValue(HKEY_CLASSES_ROOT, "yongji\\DefaultIcon", "", "C:\\Windows\\System32\\url.dll,0", REG_SZ);
 Registry.CreateKey(HKEY_CLASSES_ROOT, "yongji\\shell");
 Registry.CreateKey(HKEY_CLASSES_ROOT, "yongji\\shell\\open");
 Registry.CreateKey(HKEY_CLASSES_ROOT, "yongji\\shell\\open\\command");
 Registry.SetValue(HKEY_CLASSES_ROOT, "yongji\\shell\\open\\command", "", Strs, REG_SZ);

3、因为网页调用本地程序只能是exe程序,所以SL的XAP是没法调用的。我实现的方法是用批处理写了一个启动本地程序的文件生成exe,并把这个exe注册到注册表以便网页来调用。

4、这个批处理设计的原理是启动SL的sllancher.exe并传参给它。这个参数是多少就要从注册表里读了,因为安装SL程序的时候都在注册表HKCU\Software\microsoft\windows\currentversion\uninstall下面有相应的信息,所以我的批处理就是在这儿找参数。以下是我的批处理的内容:

 echo off
for /f "tokens=1 delims=:" %%i in ('reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall') do (
 for /f "tokens=3,*" %%a in ('reg query %%i /v "Publisher"') do (if %%a == www.yongji100.com (for %%k in ("%%%i%") do (start "" "%ProgramFiles%\Microsoft Silverlight\sllauncher.exe" %%~nxi /origin:http://www.yongji100.com/))
)
)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值