1、exe创建注册表
2、web启动exe,并传真userId
3、exe取得服务器授权sig
4、web取得推流地址: 'http://v.ju918.com/live/26185_21639.m3u8'
从网页中通过自定义URL Protocol调用本地程序,需要将协议写到注册表中。
浏览器在解析到自定义URL Protocol之后,寻找注册表,通过注册表启动相应的程序并传入参数。
协议里面需要记录本地程序的路径信息。
一、HTML调用方式如下:
< a href="Micro.Live://">WebExe,启动Exe应用程序</ a > |
二、PC端注册表格式如下:
在开始菜单处,打开“运行”工具,或者按Win+R,在“运行”输入字母“regedit”,按回车键。这是打开注册表编辑器的命令。
然后注册表编辑器就出现在桌面了,在计算下面,大家可以进行各种设置。
HKEY_CLASSES_ROOT设置注册表Micro.Live
常用的注册三种编辑注册表的方式如下
方式一、注册表文件格式如下:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Micro.Live] "URL Protocol" = "C:\\Micro.Live.exe" @= "Micro.Live.Protocol" [HKEY_CLASSES_ROOT\Micro.Live\DefaultIcon] @= "C:\\Micro.Live.exe,1" [HKEY_CLASSES_ROOT\Micro.Live\shell] [HKEY_CLASSES_ROOT\Micro.Live\shell\open] [HKEY_CLASSES_ROOT\Micro.Live\shell\open\command] @= "\"C:\\Micro.Live.exe\"\"%1\"" |
复制到(txt)记事本,然后另存为Micro.Live.reg.reg文件,打开运行文件;
方式二、控制台程序(C#)如下:
1、配置文件(ProtocolInfo.xml)放到本地程序目录(Debug)
<? xml version="1.0" encoding="utf-8" ?> < ArrayOfProtocolInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance"> < ProtocolInfo ProtocolName="Micro.Live.Protocol" ProgramName="Micro.Live.exe" NodeName="Micro.Live" /> </ ArrayOfProtocolInfo > |
2、创建控制台应用程序 |
try { List<ProtocolInfo> protocalInfos = ProtocolInfo.GetProtocolInfo( string .Format( "{0}\\ProtocolInfo.xml" , Environment.CurrentDirectory)); if (protocalInfos == null || protocalInfos.Count == 0) Console.WriteLine( "未获取协议的配置信息!请确保配置文件 ProtocolInfo.xml 在当前目录下。" ); string nodeName = protocalInfos[0].NodeName; string programFullPath = string .Format( "{0}\\{1}" , Environment.CurrentDirectory, nodeName); RegistryKey key = Registry.ClassesRoot; string a = ( string )key.GetValue(nodeName, true ); if (!key.Name.Contains(nodeName)) { RegistryKey software = key.CreateSubKey(protocalInfos[0].NodeName); software.SetValue( "URL Protocol" , programFullPath); software.SetValue( "" , protocalInfos[0].ProtocolName); RegistryKey softwareDefaultIcon = software.CreateSubKey( "DefaultIcon" ); softwareDefaultIcon.SetValue( "" , string .Format( "{0},{1}" , programFullPath, 1)); RegistryKey softwareShell = software.CreateSubKey( "shell" ); softwareShell = softwareShell.CreateSubKey( "open" ); softwareShell = softwareShell.CreateSubKey( "command" ); softwareShell.SetValue( "" , string .Format( "\"{0}\" \"%{1}\"" , programFullPath, 1)); } } catch (Exception ex) { Console.Write(ex.Message); } |
3、如果当前用户没有管理员权限,写注册表会被拒。程序需要添加app.manifest文件
方式三、部署添加注册表(C#)如下:
注册表页面,各个节点的键值为:
键(Key) | 名称(Name) | 值(Value) |
Micro.Live | Micro.Live.Protocol | |
Micro.Live | URL Protocol | C:\Micro.Live.exe |
Micro.Live/DefaultIcon | C:\Micro.Live.exe,1 | |
Micro.Live/shell | ||
Micro.Live/shell/open | ||
Micro.Live/shell/open/command | "C:\Micro.Live.exe""%1" |
右键 => New =>键 =>字符串值 => 属性窗口 => Name/Value
三、WPF 程序处理参数
static class Program { /// <summary> //应用程序的主入口点。 //</summary> [STAThread] static void Main( string [] args) { CustomApplication app = new CustomApplication(); app.Run(); } } class CustomApplication : Application { protected override void OnStartup(StartupEventArgs e) { base .OnStartup(e); if (e.Args.Length > 0) { MainWindow window = new MainWindow(e.Args); window.Show(); } else { MessageBox.Show( "未传入参数!" ); Application.Current.Shutdown(); } } } |
源代码下载地址:点击打开链接
本博客Android APP 下载 |
![]() |
支持我们就给我们点打赏 |
![]() |
支付宝打赏 支付宝扫一扫二维码 |
![]() |
微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2016-12-04 .NET Core 跨平台发布(dotnet publish)
2016-12-04 Asp.Net Core 发布和部署(Linux + Jexus )