网页中打开exe

网友投稿 709 2022-09-29

网页中打开exe

网页中打开exe

网页上打开本地的exe文件,可以吗?

西蒙说:可以的。

方法如下:

1、定义一个私有协议 协议,Registry Editor Version 5.00[HKEY_CLASSES_ROOT\HYZT]@="URL:HYZT Protocol Handler""URL Protocol"=""[HKEY_CLASSES_ROOT\HYZT\shell][HKEY_CLASSES_ROOT\HYZT\shell\open][HKEY_CLASSES_ROOT\HYZT\shell\open\command]@="E:\\hyzt\\bin\\Debug\\hyzt.exe %1"

文件另存为:hyzt.reg。然后双击此文件,注册表即修改矣。文件可以多次修改,多次运行。新修改覆盖原来。

如此,我们就定义了一个私有协议:hyzt。

学习和 URL。二者有啥区别?

URI,统一资源定位符;URL,统一资源位置符。简单来讲, URL = 协议 + URI。

比方说,baidu.com是一个URI,而​​ 我们用 ​​​hyzt://​​ 就可以打开exe。如果想传参数该咋办?可以类似酱紫:

hyzt://1000,chenqu

注意,exe接收到的参数,并不是 ​​1000,chenqu​​​,而是完整的 ​​hyzt://1000,chenqu​​ !

附exe接收参数并处理:

namespace TackColor{ static class Program { ///

/// /// [STAThread] static void Main(string[] paras) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new

namespace TackColor{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } string _UserId = "0"; string _UserName = ""; public Form1(string[] paras) : this() { pickupParam(paras); } private void Form1_Load(object sender, EventArgs e) { MessageBox.Show(String.Format("用户ID:{0},用户名:{1}",this._UserId,this._UserName)); } void pickupParam(string[] paras) { if(paras == null && paras.Length == 0) { return; } string p = paras[0]; Regex rx = new Regex(@"hyzt\://(?

[^/]+)/?", RegexOptions.Compiled | RegexOptions.IgnoreCase); Match m = rx.Match(p); if(m.Success) { string[] ps = m.Result("${p}").Split(','); if(ps.Length > 0) { this._UserId = ps[0]; } if (ps.Length > 1) { this._UserName = ps[1]; } } } }}

4、私有协议与程序安装包结合 私有协议里面,明确指明了相应的可执行文件的路径:

[HKEY_CLASSES_ROOT\HYZT\shell\open\command]@="C:\\hyzt\\bin\\Debug\\hyzt.exe %1"

问题是,每台客户机实际情况千差万别,比如本例子中,有些机器根本没有C盘,可执行文件可能装在D盘。那么这个注册表文件在运行前,都要手动改一下吗? 一个思路是,这个注册表修改工作放在程序的安装包里。用户安装的时候,就将私有协议写进去。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:归纳整理微信小程序常用表单组件(微信小程序图表组件)
下一篇:浅析微信小程序中自定义组件的方法(小程序 自定义组件 样式)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~