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();
}
}
}

源代码下载地址:点击打开链接

web调用本地exe应用程序并传入参数的更多相关文章

  1. html中调用本地exe应用程序

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. html网页调用本地exe程序的实现方法:

    html网页调用本地exe程序的实现方法:1.新建注册表具体文件: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\hhtpexe] [ ...

  3. PHP 网页调用本地exe程序实例

    一.需求:在做网站的时候,有些网站网页面需要调用本地的exe程序. 二.方法:利用注册URL Protocol的方式. 代码如下: 1.视图文件里面的代码: <a href="fyex ...

  4. html网页调用本地exe程序的实现方法(转)

    https://blog.csdn.net/ilovecr7/article/details/46803711 最近在做一个项目,要什么网页里调exe...开始以为不能实现,后来想想很多就跟淘宝网页上 ...

  5. VB脚本调用exe应用程序并传递参数

    VB脚本调用应用程序,并传递参数给exe应用程序: Private Sub CommandButton1_Click() Dim a a = Shell("D:\\ExperimentLin ...

  6. air2调用本地exe的文章

    流传了两种配置app.xml的方法,分别是: <supportedProfiles>extendedDesktop</supportedProfiles>  <suppo ...

  7. [AIR] AIR程序调用本地默认应用程序打开本地文件

    摘要:      File类提供了一个方法openWithDefaultApplication可以用本地默认应用程序打开指定路径下的文件. 当我用下面语句的时候,可以成功打开桌面文件夹下面的文件: v ...

  8. python脚本程序,传入参数*要用单引号'*'

    *号作为python脚本的传入参数时,必须用单引号'',才能正确传入.如python test.py 2014 '*' age python test.py 2014 * age是错误的. 比如 te ...

  9. .net实现调用本地exe等应用程序的办法总结

    根据客户需求用户要实现在一个BS系统上打开本地的一应用程序,在网上查了好多资料再加上自己的各种测试,到最后功能是实现了,只不过还存在一些问题,接下来会先把各种方法一一列举出来 1.先写最终测试通过的这 ...

随机推荐

  1. BZOJ3110 [Zjoi2013]K大数查询 树套树 线段树 整体二分 树状数组

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3110 题意概括 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位 ...

  2. 数据处理:2.异常值处理 & 数据归一化 & 数据连续属性离散化

    1.异常值分析 异常值是指样本中的个别值,其数值明显偏离其余的观测值.异常值也称离群点,异常值的分析也称为离群点的分析. 异常值分析 → 3σ原则 / 箱型图分析异常值处理方法 → 删除 / 修正填补 ...

  3. HierarchicalClustering:编写HierarchicalClustering层次聚类算法—Jason niu

    from numpy import * class cluster_node: def __init__(self,vec,left=None,right=None,distance=0.0,id=N ...

  4. Elasticsearch 基于 URL 的搜索请求

    背景 Elasticsearch 不像关系型数据库,没有简易的 SQL 用来查询数据,只能通过调用 RESTful API 实现查询.大体上查询分为两种,基于 URL 的和基于请求主体的.基于 URL ...

  5. 上海市2019年公务员录用考试笔试合格人员笔试成绩(A类)

    考试类别:A类 注册编号 总成绩 注册编号 总成绩 注册编号 总成绩 注册编号 总成绩 4016574 127.4 5112479 145.9 5125732 124.3 5141074 159.9 ...

  6. 2017-10-5-Python

    想学习Python很长时间了,工作中使用Python脚本解决问题真的很爽. 插入一张Python的py文件常见的结构图: if __name__ =="__main__" 这条语句 ...

  7. 英语口语练习系列-C34-儿童-谈论物品和人-武陵春

    词汇-儿童 child a child favorite game toy regulation breadwinner dominant selfish ancestor custom belief ...

  8. go defer笔记

    1.函数中return xxx非原子指令 2.函数返回过程:先给返回值赋值:再调用defer:最后回到调用函数中 即:返回值 = xxx; defer; return; 3.多个defer调用顺序类似 ...

  9. 【开源GPS追踪】 之 硬件开源

    根据设定目标: 使用GPS 采集经纬度,然后通过GPRS模块/wifi 发送到服务器显示,WIFI不常有,所有就使用GPRS模块! 对于GPS模块,没有特殊要求,只要输出格式符合NMEA协议即可,为了 ...

  10. 要过年啦,用canvas做了个烟火效果

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 要过年了,过年想到的就是放烟火啦....于是就用canvas写了个放烟火的效果,鼠标点击也会产生烟火,不过不要产生太多烟火哦,一个烟火散出 ...