• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#实现Web链接启动应用程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近需要配合Web端实现用户点击链接来启动应用程序并且需要能够传参数给应用程序。

那么就可以使用注册表来实现这个功能

编写注册表可以在软件安装程序中加入,也可以在软件启动后在软件中编写注册表,在软件安装程序中编写注册表这里就不多说了,这里记录一下C#实现注册表的编写。

if (Registry.ClassesRoot.OpenSubKey(RJCommon.ProtocolName) != null)
                return;
RegistryKey registryKey = Registry.ClassesRoot.CreateSubKey(RJCommon.ProtocolName);
registryKey.SetValue(string.Empty, RJCommon.ProtocolName);//名称为空的是设置默认值
registryKey.SetValue("URL Protocol", Application.ExecutablePath);
registryKey.CreateSubKey("DefaultIcon").SetValue(string.Empty, $"{Application.ExecutablePath},1");
RegistryKey shell = registryKey.CreateSubKey("shell");
shell.SetValue(string.Empty, "open");
RegistryKey open = shell.CreateSubKey("open");
open.SetValue(string.Empty, "open");
open.CreateSubKey("command").SetValue(string.Empty, $"\"{Application.ExecutablePath}\" %1");
registryKey.Close();

这样就实现了软件自注册注册表了。特别注意一下设置默认值时需要键值为空就可以设置默认值了,我在这个地方折腾过,在注册表文件编写中是填写'@'符号,这里使用'@'是不能设置默认值的,切记。那么Web端如何调用呢?也很简单

<a href="RDP:{'ip':'127.0.0.0','user':'user','pwd':'1536'}">打开远程控制</a>

其中RDP就是C#中RJCommon.ProtocolName的值,且必须后面紧跟冒号':'符号,后面就是带的参数了。
C#中接收这些参数就简单了。可以使用static void Main(string[] args)中传入的args参数获取,或者使用Environment.CommandLine来获取,Environment.CommandLine会多传入一个程序路径的值。

注册表文件编写

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\RDP]  
@="RDP"  
"URL Protocol"="D:\\BaiduNetdiskDownload\\RdpClient\\RdpClient.exe"   
[HKEY_CLASSES_ROOT\RDP\DefaultIcon]
@="D:\\BaiduNetdiskDownload\\RdpClient\\RdpClient.exe,1"
[HKEY_CLASSES_ROOT\RDP\shell]
@="open"
[HKEY_CLASSES_ROOT\RDP\shell\open]
@="open"
[HKEY_CLASSES_ROOT\RDP\shell\open\command]
@="\"D:\\BaiduNetdiskDownload\\RdpClient\\RdpClient.exe\" %1"

保存为.reg为后缀的文件,双击执行即可


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
1043:C语言程序设计教程(第三版)课后习题10.1发布时间:2022-07-14
下一篇:
Json文件与C#字典读写转换发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap