在网页中启动调用客户端桌面程序
2011-08-10 15:25
363 查看
如何通过js来打开客户端的应用程序
在网上获得了如下资料: <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> 请输入要运行的程序:<br/><input name=exe type=text size=20 value="regedit"><BUTTON class=button onclick="Run(exe.value)">确定</BUTTON><BUTTON class=button onclick=exe.value="";>重新输入</BUTTON><br/> <BUTTON class=button onclick="Run('notepad')">记事本</BUTTON><br/> <BUTTON class=button onclick="Run('mspaint')">画图板</BUTTON><br/> <BUTTON class=button onclick="Run('calc')">计算器</BUTTON><br/> <BUTTON class=button onclick="Run('cmd')">cmd</BUTTON><br/> <BUTTON class=button onclick="Run('Regedit')">Regedit</BUTTON><br/> <BUTTON class=button onclick="Run('Msconfig')">Msconfig</BUTTON><br/> <BUTTON class=button onclick="Run('file:///d:\hello.exe)">WINAMP</BUTTON><br/> <BUTTON class=button onclick="Run('IEXPLORE.EXE')">IE</BUTTON><br/> <BUTTON class=button onclick="Run('..')">..</BUTTON><br/> <BUTTON class=button onclick="Run('%windir%')">%windir%</BUTTON><br/> <BUTTON class=button onclick="Run('%temp%')">%temp%</BUTTON><br/> <BUTTON class=button onclick="Run('file:///D:/Program%20Files/Tencent/qq.EXE')">WINAMP</BUTTON><br/> </form> <SCRIPT language=JavaScript> function Run(command) { window.oldOnError = window.onerror; window._command = command; window.onerror = function (err) { if (err.indexOf('utomation') != -1) { alert('命令' + window._command + ' 已经被用户禁止!'); return true; } else return false; } var wsh = new ActiveXObject('WScript.Shell'); if (wsh) wsh.Run(command); window.onerror = window.oldOnError; } </SCRIPT> </body> 该段代码打开如:word,excel,notepad,画板等都能打开, 但是自已写的应用程序为什么打不开呢?报错说: 系统找不到指定的路径。 想要IE或word点击超链接打开本地的EXE应用程序,这个怎么办? 比如点击这样的链接 <a href="vip:123-MonacoGP-19279-Senna">打开我的协议</a> 将打开我的EXE应用程序? 首先你要修改注册表,要让IE看的懂像href="vip:123-MonacoGP-19279-Senna" 这样的协议. c#如何写注册表? //写注册表 RegistryKey key = Registry.ClassesRoot.CreateSubKey("vip"); key.SetValue("", "URL:vip Protocol"); key.SetValue("URL Protocol",""); RegistryKey Subkey= key.CreateSubKey("DefaultICon"); Subkey.SetValue("", "exe文件路径"); Subkey = key.CreateSubKey("shell").CreateSubKey("open").CreateSubKey("Command"); Subkey.SetValue("","exe文件路径"); 这段代码是在 注册表 HKEY_CLASSES_ROOT 下新建vip 的键 结构是这样的 HKEY_CLASSES_ROOT vip (Default) = "URL:vip Protocol" URL Protocol= "" DefaultIcon (Default) = "c:\somepath\APPTest.exe" shell open command (Default) = "c:\somepath\APPTest.exe" "%1" 创建完以后当你点击这样(vip:123-MonacoGP-19279-Senna)的链接,就可以打开外部的自己定义的应用程序了. 当然winform 应用程序还可以接收你传过来的值 比如 EXE应用程序启动的时候接收链接传过来的 123-MonacoGP-19279-Senna字符串,你可以在winform 启动的时候捕获这个值 [STAThread] static void Main(string[] args) { if (args.Length > 0) { //arg[0]就是刚刚链接传过来的 // 赋值=arg[0]; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } from http://hi.baidu.com/iamtogo/blog/item/2856891101433aebc2ce792c.html 另参见:http://archive.cnblogs.com/a/1937606/ 有图有真相 如何给IE工具栏添加图标和按钮,菜单,打开自己的应用程序? 可以看看这篇 http://www.codeproject.com/useritems/CorKatIEExtension.asp 关于快速的操作注册表 你可以参考 http://www.codeproject.com/cs/system/quickregistry1.asp 本文来源http://www.codeproject.com/aspnet/APPHyperlinks.asp // 上面所有链接文章的源代码下载地址 http://www.blogjava.net/Files/wujun/APPTest.rar //END |
相关文章推荐
- 利用Register protocol实现网页调用桌面程序
- 利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)
- 网页内启动客户端程序——Android
- 启动Android程序后调用默认的浏览器打开一个网页
- 利用Register protocol实现网页调用桌面程序
- 在网页上调用桌面exe程序
- 利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)
- asp.net网页调用客户端程序
- 网页启动客户端程序代码
- 在网页上调用桌面exe程序的简单方法
- C#Windows Service服务程序的安装/卸载、启动/停止 桌面客户端管理程序设计
- Windows 注册自定义的协议 实现通过网页调用本地程序的功能例如QQ等
- c#通过纯代码创建桌面快捷方式、创建程序菜单项、将网页添加到收藏夹
- 网页调用本地EXE程序文件
- 无法启动此程序,因为计算机中丢失LIBMYSQL.dll ROR网页开发问题
- winform .exe程序打包修改注册表使其可通过网页触发启动并传入参数
- HTTP接口客户端调用程序
- android实现程序启动直接调用系统默认浏览器
- 《Java程序代理器》- java桌面程序运行的前端启动框架
- 客户端调用第三方remoting 服务程序的n中方式,VB.NET 晚期邦定还真方便