0%

网页打开本地软件

  1. html
  2. 注册表配置
  3. 用C++代码配置注册表

在web网页上打开电脑本地exe应用_从网页上打开应用程序-CSDN博客

html

1
<a href="Smart.UAV://">点我</a>

注册表配置

  1. 新建路径:HKEY_CLASSES_ROOT\Smart.UAV

  2. 然后在这个路径的默认值,填上任意字符串,如SmartUAV.exe,这个字符串在浏览器打开软件时,显示名称:

image-20240711171150622

若文件带有描述,在打开一次之后,再从页面处打开,上面这个字符串内容就会失效,替换为文件本身的描述(如下)。但这个字符串依旧是必须的,如果为空,则无法弹出打开软件的确认窗口,也就无法打开软件

image-20240711171438313

  1. 相同路径下,再新建一个类型为REG_SZ的键,命名为URL Protocol,没它也打开不了软件,值设置为空。

  2. 新建路径:HKEY_CLASSES_ROOT\Smart.UAV\shell\open\command

  3. 然后默认值填入exe文件的路径,就算配置完成。此时回到网页,就可以打开软件了

用C++代码配置注册表

用到了以下函数,实现见同天另一篇日志:

1
2
3
4
static void WriteRegKeyStringValue(const HKEY hKey,
const std::string& fullPath,
const std::string& keyName,
const std::string& value);

注册表配置代码:

1
2
3
4
WriteRegKeyStringValue(HKEY_CLASSES_ROOT, "Smart.UAV\\", "", "SmartUAV.exe");
WriteRegKeyStringValue(HKEY_CLASSES_ROOT, "Smart.UAV\\", "URL Protocol", "");
WriteRegKeyStringValue(HKEY_CLASSES_ROOT, "Smart.UAV\\shell\\open\\command", "",
"<文件路径>\\SmartUAV.exe");