您的位置:首页 > Web前端 > JavaScript

通过JS启动客户端应用程序以及自定义程序

2012-01-06 20:10 302 查看
最近公司要求做一个和BS结合的CS截屏程序,主要功能是通过BS的超链接启动客户端的应用程序。针对于像QQ、Word等,很简单即可启动,可是当启动我自己做的程序的时候,总是碰到找不到路径路径问题,

在网上搜索了诸多材料,也找到不少回答,在此进行整理。

1,首先就是BS利用js控制本地已注册的应用程序的启动

//控制启动QQ的js functionRunQQ() { varQQ=newActiveXObject("WScript.Shell"); //QQ.exec("D:\\ProgramFiles\\Tencent\\QQ\\Bin\\QQ.exe");也可以启动应用程序 QQ.run("QQ.exe"); QQ=null; returnfalse; } <%--启动QQ的HTML按钮--%> <inputid="btn_QQ"type="button"value="启动QQ"onclick="RunQQ()"/>
这样运行时,可能会提示加载控件,可以这样解决:
选择IE浏览器上工具----Internet选项---高级----允许活动内容在我的计算机上的文件中运行*(启用)

2,当客户端BS利用js控制用户自定义的应用程序的启动

要启动用户自己定义的应用程序,首先要在安装程序的时候修改注册表。

c#如何写注册表?

//写注册表
RegistryKeykey=Registry.ClassesRoot.CreateSubKey("vip");
key.SetValue("","URL:vipProtocol");
key.SetValue("URLProtocol","");
RegistryKeySubkey=key.CreateSubKey("DefaultICon");
Subkey.SetValue("","exe文件路径");
Subkey=key.CreateSubKey("shell").CreateSubKey("open").CreateSubKey("Command");
Subkey.SetValue("","exe文件路径");

此处是exe文件路径是用户自定义应用程序的exe路径。

这段代码是在注册表HKEY_CLASSES_ROOT下新建vip的键

结构是这样的

HKEY_CLASSES_ROOT
vip
(Default)="URL:vipProtocol"
URLProtocol=""
DefaultIcon
(Default)="c:\somepath\APPTest.exe"
shell
open
command
(Default)="c:\somepath\APPTest.exe""%1"

这样利用

<ahref="vip:123-MonacoGP-19279-Senna">拍照</a>

这个协议即可打开应用程序。

当然在用户自定义程序必须接受这个vip传过来的值

EXE应用程序启动的时候接收链接传过来的123-MonacoGP-19279-Senna字符串,你可以在winform启动的时候捕获这个值

[STAThread]
staticvoidMain(string[]args)
{
if(args.Length>0)
{
//arg[0]就是刚刚链接传过来的
//赋值=arg[0];
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newForm1());
}

参考:http://hi.baidu.com/xsunday/blog/item/f72634fa5420859459ee908f.html


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: