B/S实现点击执行本机exe文件(已知路径),IE有ActiveXObject可实现,其他浏览器有相关方法接口实现么?
第一步:
注入注册表
try { string appPath = "\"" + Application.ExecutablePath + "\" \"%1\""; string strKey = Application.ProductName; string strKey_shell_open_cmd = strKey + @"\shell\open\command"; var subKey = Registry.ClassesRoot.CreateSubKey(strKey); subKey.SetValue("URL Protocol", "1"); var subKey_shell_open_cmd = Registry.ClassesRoot.CreateSubKey(strKey_shell_open_cmd); subKey_shell_open_cmd.SetValue(null, appPath); } catch (Exception ex) { MessageBox.Show(string.Format("Web启动参数设置失败, 原因: {0}", ex.Message)); }
2 注入后效果如下图
%1是传入的参数
2. 网站上加一个link
<a href="HelloWorld://123">Hello World</a>
这里123是传入的参数
当我们点击这个link时,就会自动打开这个客户端软件。
注入注册表我也想过,可是要想注入的话就要执行以上代码,代码是在服务器端执行的吧,能在本机注册表添加上信息么?
@炒春卷:上面的代码是在客户端 执行的
@田麦成: 意思是这段代码应该是在安装客户端应用的时候将注册表信息注入的吧。。。
@炒春卷: 浏览器绝对不能干这个事(写注册表)的,会被人打死的。(记住浏览器的权限是受限的)
@爱编程的大叔: IE有ActiveXObject可实现执行文件,其他浏览器有相关方法接口实现么?或者有什么第三方插件,网上找了很久都没找到。。。。
如果客户端exe是自己做的,可以试试注册URL Protocol。
服务器端执行exe,不明白要做什么,只要后台有足够权限就可以。如PHP中:exec("ffmpeg.exe");
没有客户端的,是浏览器的。。。
试试这个
Process process = new Process();
这样执行的是服务器端exe文件。。。
URL Protocol妥妥的~
如何注册?http://stackoverflow.com/questions/389204/how-do-i-create-my-own-url-protocol-e-g-so
类似“QQ交谈”弹出本机QQ应用,此操作无安装客户端过程
此操作时没有安装客户端的过程,但是要弹出的 QQ 应用程序是有安装客户端的过程,QQ 应用程序安装时会注册 COM 组件,在 JS 中通过 CreateObject 可以创建 COM 组件,从而实现从网页中启动 QQ 应用程序。