JavaScript 调用 C++/Qt 工程(附有代码 + demo)

简介: JavaScript 调用 C++/Qt 工程(附有代码 + demo)

 该文章主要讲述了如何在 Js 网页调用 .exe ;实际上如果实现了 Js 调用 .exe 也就是实现了 Js 调用 C++/Qt 工程,只是在调用前把 C++/Qt 工程封装成 .exe(或者封装成安装软件)即可;


把 C++/Qt 工程封装成安装软件见:C++ 程序生成安装软件 .exe (非常实用)_一米九零小胖子的博客-CSDN博客


一、Js 调用 .exe 流程


1、创建 .reg 文件


.reg 文件的标准创建流程见:无法导入.reg:指定的文件不是注册脚本。你在注册表编辑器中只能导...解决办法(非常实用)_一米九零小胖子的博客-CSDN博客


.reg 文件编辑内容如下:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ZZO]
@="URL:ZZO Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ZZO\DefaultIcon]
@="E:\\WeChat\\WeChat.exe"
[HKEY_CLASSES_ROOT\ZZO\shell]
[HKEY_CLASSES_ROOT\ZZO\shell\open]
[HKEY_CLASSES_ROOT\ZZO\shell\open\command]
@="E:\\WeChat\\WeChat.exe"

说明1:上述代码中第 7、14 行是被调用的 .exe 文件的绝对路径;

说明2:上诉代码中第 1、3、6、9、11、13 行中 ZZO 是自定义的名字,为了避免错误一般都是英文;


2、导入注册表(.reg文件)


双击创建的 .reg 文件,点击:是 —— 确认;

672b2322f26b483da9671669edaf2f76.png

9141b4aa5a5c4bbf96a81c36f2289ca4.png

说明:如果该过程中出现了:无法导入F:\桌面\wechat.reg:指定的文件不是注册脚本。你在注册表编辑器中只能导入二进位注册文件.reg!问题,解决办法请参考:无法导入.reg:指定的文件不是注册脚本。你在注册表编辑器中只能导...解决办法(非常实用)_一米九零小胖子的博客-CSDN博客


3、创建 html 文件


html文件编辑内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>打开微信</title>
    <style>
    a {font-size: 30px;text-decoration: none;}
    </style>
</head>
<body>
    <a href="ZZO://">打开微信</a>
    <hr/>
</body>
</html>

说明:上述代码中第 14 行中的 ZZO 就是注册表(.ref文件)中的自定义名字,需要保持一直,为避免出错大小写尽量保持一致(虽然此处不区分大小写);


二、Js 调用 .exe 测试结果


点击 html —— 打开微信,出现以下结果,Js 成功调用 .exe ;

2e7e27b9283c4393b3f2124926d7ef63.png

相关文章
|
2月前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
110 0
|
4天前
|
C++
继续更新完善:C++ 结构体代码转MASM32代码
继续更新完善:C++ 结构体代码转MASM32代码
|
4天前
|
C++ Windows
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
|
4天前
|
C++
2合1,整合C++类(Class)代码转换为MASM32代码的平台
2合1,整合C++类(Class)代码转换为MASM32代码的平台
|
4天前
|
C++
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
|
4天前
|
前端开发 C++ Windows
C++生成QML代码与QML里面集成QWidget
这篇文章介绍了如何在C++中生成QML代码,以及如何在QML中集成QWidget,包括使用Qt Widgets嵌入到QML界面中的技术示例。
|
4天前
自己动手写QT多线程demo
本文是作者关于如何编写Qt多线程demo的教程,介绍了如何实现多线程功能,包括可暂停和继续的功能。文章提供了部分示例代码,展示了如何创建线程类、启动和管理线程,以及线程间的通信。同时,还提供了相关参考资料和免费下载链接。
|
15天前
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
60 30
|
4天前
|
并行计算 Unix Linux
超级好用的C++实用库之线程基类
超级好用的C++实用库之线程基类
12 4
|
4天前
|
存储 运维 监控
超级好用的C++实用库之日志类
超级好用的C++实用库之日志类
10 0
下一篇
无影云桌面