尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
浏览器打开本地软件
目录整体思路第一步注册 URL Protocol第二步C 程序接收参数第三步测试方式0 在浏览器地址栏输入 测试成功myapp://open?filehello.txt方式一直接使用 标签最简单方式二使用 JavaScript 点击事件整体思路网页点击链接myapp://open?filexxx→ Windows 注册表找到对应的协议处理器 → 启动你的 C 程序并把参数传进去。第一步注册 URL Protocol你需要先在 Windows 注册表中注册一个自定义协议比如myapp://。创建一个.reg文件比如install.reg内容如下regWindows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\myapp] MyApp Protocol URL Protocol [HKEY_CLASSES_ROOT\myapp\shell] [HKEY_CLASSES_ROOT\myapp\shell\open] [HKEY_CLASSES_ROOT\myapp\shell\open\command] \C:\\MyApp\\MyApp.exe\ \%1\双击运行这个.reg文件将协议写入注册表。注意把C:\MyApp\MyApp.exe换成你实际程序的路径。第二步C 程序接收参数当浏览器点击myapp://open?filetest.txt时系统会调用你的 exe并把完整 URL 作为命令行参数传入。下面是一个完整的 C 示例#include windows.h #include shellapi.h #include iostream #include string #include urlmon.h #pragma comment(lib, urlmon.lib) int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 获取完整命令行 LPWSTR* szArgList; int argCount; szArgList CommandLineToArgvW(GetCommandLineW(), argCount); if (argCount 2) { MessageBoxW(NULL, L没有收到URL参数, L提示, MB_OK); LocalFree(szArgList); return 0; } // 参数格式: myapp://open?filetest.txtactionview std::wstring fullUrl szArgList[1]; LocalFree(szArgList); // 解析 URL简单示例只提取 file 参数 // 实际生产环境建议用 UrlUnescape 等更严谨的方法 std::wstring filePath; size_t pos fullUrl.find(Lfile); if (pos ! std::wstring::npos) { filePath fullUrl.substr(pos 5); // 去掉可能存在的后续 参数 size_t endPos filePath.find(L); if (endPos ! std::wstring::npos) { filePath filePath.substr(0, endPos); } // URL 解码把 %20 转成空格等 wchar_t decoded[1024] {0}; DWORD len 1024; UrlUnescapeW(filePath.c_str(), decoded, len, 0); filePath decoded; } // 显示接收到的信息模拟处理逻辑 std::wstring msg L接收到协议调用\n\n完整URL: fullUrl L\n\n解析出的文件: filePath; MessageBoxW(NULL, msg.c_str(), LMyApp 已唤起, MB_OK); // 这里可以写你的实际业务逻辑比如 // - 打开文件 // - 显示主窗口 // - 把文件路径传给主程序实例通过管道、共享内存、窗口消息等 return 0; }第三步测试编译上述代码生成MyApp.exe放到C:\MyApp\或你在注册表中指定的路径。方式0 在浏览器地址栏输入 测试成功myapp://open?filehello.txt方式一直接使用a标签最简单htmla hrefmyapp://open?filehello.txt打开 Bambu Studio/a方式二使用 JavaScript 点击事件htmlbutton οnclickopenBambu()打开 Bambu Studio/button script function openBambu() { window.location.href myapp://open?filehello.txt; } /script系统会弹出提示框显示解析出的信息。
RELATED

相关推荐

Linux内核块设备分区管理:从MBR/GPT原理到实践操作

Linux内核块设备分区管理:从MBR/GPT原理到实践操作

Linux 内核中的块设备分区管理是系统存储架构的核心组成部分,它决定了物理磁盘如何被划分为逻辑单元供操作系统使用。无论是传统的机械硬盘还是现代的 NVMe SSD,分区管理机制都直接影响着系统的启动流程、数据存储效率以及多系统兼容性。今天我们将深入探…

📅 2026/9/18 5:46:00
SteamAutoCrack:自动化移除Steam DRM,实现游戏离线运行的技术解析与实践

SteamAutoCrack:自动化移除Steam DRM,实现游戏离线运行的技术解析与实践

1. 项目概述:SteamAutoCrack是什么?如果你是一个单机游戏爱好者,或者经常在各大游戏论坛里淘资源,那你大概率听说过“Steam DRM”和“Goldberg模拟器”这些词。简单来说,很多在Steam平台购买的游戏,其可执行…

📅 2026/8/24 8:25:08
人形机器人工程落地的硬核真相:从能动到敢用的全栈挑战

人形机器人工程落地的硬核真相:从能动到敢用的全栈挑战

1. 展会不是秀场,是人形机器人产业的“压力测试现场”2026年4月,杭州国际博览中心B馆的地面震感明显——不是地震,是二十多台人形机器人在同步行走、转弯、上下台阶时,伺服电机与减速器协同输出的低频共振。我站在展台边缘&#x…

📅 2026/8/24 8:25:09
MORE NEWS

更多资讯

📰

ant-design Upload 组件入门:从「点击上传」Demo 到源码级解析

ant-design Upload 组件入门:从「点击上传」Demo 到源码级解析 【免费下载链接】ant-design An enterprise-class UI design language and React UI library 项目地址: https://gitcode.com/gh_mirrors/antde/ant-design 上传是 Web 表单类交互中最常见的需求…

📰

ZenML 集成 BentoML Model Deployer 实战:从 Bento 构建到本地 HTTP 与容器化模型部署

ZenML 集成 BentoML Model Deployer 实战:从 Bento 构建到本地 HTTP 与容器化模型部署 【免费下载链接】zenml ZenML 🙏: One AI Platform from Pipelines to Agents. https://zenml.io. 项目地址: https://gitcode.com/GitHub_Trending/ze/zenml …

📰

在 Cloudflare Agents 项目中固化未发布依赖:pi AgentHarness 的 vendored 开发版构建输入解析

在 Cloudflare Agents 项目中固化未发布依赖:pi AgentHarness 的 vendored 开发版构建输入解析 【免费下载链接】agents Build and deploy AI Agents on Cloudflare 项目地址: https://gitcode.com/GitHub_Trending/agents1/agents 本文围绕 examples/next/h…

📰

我用华为云码道从0到1做出一款战棋游戏:一个周末的完整实战记录

一键开通华为云码道 CodeArts 代码智能体:https://developer.huaweicloud.com/codeartsco.html?sourcedmzntgwatomgit1&sourceaddmzntgwatomgithd 作品介绍: 本文记录了作者仅用6分37秒,通过华为云码道CodeArts代码智能体,从…

📰

PS2022扩展面板未经正确签署:CEP签名与PlayerDebugMode修复

PS2022装上扩展面板,满怀期待点开,结果面板区域甩出一句"未经正确签署",旁边那个扩展图标灰着点不动,连配置按钮都是死的——这个场景我在同行群里见过太多次,也帮人远程排查过好几轮。很多人第一反应是&quo…

📰

Qwen3.8-27B 私有化部署压测完,云端兜底的 Base URL 改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬