仿腾讯 QQ 和 Skype 通过URL触发自己的程序

【Win】使用PowerShell和Webhooks轻松发送消息至Microsoft Teams Microsoft Teams是一款由微软开发的团队协作和通讯工具。如果您对这个名字还不太熟悉,那么现在就是一个了解它的好时机。微软将Teams定位为其之前Skype for Business解决方案的继任者,并且它也提供了与其他基于频道的通讯应用程序(例如Slack、Discord、Mattermost等)相竞争的替代选择。Teams对Webhook集成的支持,这也是我们在本文中将要探讨的内容。 阅读详情

下载源代码

  如果你电脑中装有QQ,在IE地址栏输入:“tencent://Message/?menu=yes&exe=&uin=13231462”然后[回车],立即可以与我的QQ建立临时会话,如下图:

Skype也有类似的功能。到底是如何实现的呢?看MSDN中有这么一段话:

  The IURLSearchHook interface is used by the browser to translate the address of an unknown URL protocol. When attempting to browse to a URL address that does not contain a protocol, the browser will first attempt to determine the correct protocol from the address. If this is not successful, the browser will create URL Search Hook objects and call each object's Translate method until the address is translated or all of the hooks have been queried.

  IURLSearchHook接口被浏览器用来转换一个未知的URL协议地址。当浏览器企图去打开一个未知协议的URL地址时,浏览器首先尝试从这个地址得到当前的协议,如果不成功,浏览器将创建在系统中注册的URL Search Hook对象并调用每一个对象的Translate方法,直到地址被转换或所有的URL Search Hook都尝试过。
  也就是说,我们可以注册一种目前不存在的协议(类似HTTP),当浏览器遇到新的协议时会自动调用Translate方法来翻译我们的协议,甚至激活我们自己的程序。

以下源代码将实现注册一个新的自定义的Web协议:

//
// 注册自定义的Web协议
// return : ------------------------------------------------------------------------
//		0	-	失败
//		1	-	成功
//		2	-	已经存在
//
int RegWebProtocol ( LPCTSTR lpszProtocolName, LPCTSTR lpszAssociatedApp, int nIconIndex/*=0*/ )
{
	if ( !lpszProtocolName || 
	     lstrlen(lpszProtocolName) < 1 || 
	     !lpszAssociatedApp || 
	     lstrlen(lpszAssociatedApp) < 1 )   
		return 0;

	CString csSubKey;
	DWORD dwBufSize = 0;

	// 该协议已经存在
	HKEY hKey = NULL;
	if ( RegOpenKeyEx ( HKEY_CLASSES_ROOT,
				lpszProtocolName,
				0,
				KEY_ALL_ACCESS,
				&hKey ) == ERROR_SUCCESS )
	{
		return 2;
	}
	else hKey = NULL;

	// 创建协议子键
	if ( !CreateRegisterSubKey ( HKEY_CLASSES_ROOT, lpszProtocolName ) )
		return 0;

	// 设置协议描述字符串
	CString csProtocolDesc; csProtocolDesc.Format ( _T("%sProtocol"), lpszProtocolName );
	dwBufSize = csProtocolDesc.GetLength();
	if ( !WriteRegister ( HKEY_CLASSES_ROOT, lpszProtocolName,
		_T(""), REG_EXPAND_SZ, (PUCHAR)csProtocolDesc.GetBuffer(0),&dwBufSize) )
		return 0;
	CString csAppFile; csAppFile.Format ( _T("%s"), lpszAssociatedApp );
	dwBufSize = csAppFile.GetLength();
	if ( !WriteRegister ( HKEY_CLASSES_ROOT, lpszProtocolName,
		_T("URL Protocol"), REG_EXPAND_SZ, (PUCHAR)csAppFile.GetBuffer(0),&dwBufSize) )
		return 0;

	// DefaultIcon 子键
	csSubKey.Format ( _T("%s//DefaultIcon"), lpszProtocolName );
	if ( !CreateRegisterSubKey ( HKEY_CLASSES_ROOT, csSubKey ) )
		return 0;
	CString csIconParameter; csIconParameter.Format ( _T("%s,%d"), lpszAssociatedApp, nIconIndex );
	dwBufSize = csIconParameter.GetLength();
	if ( !WriteRegister ( HKEY_CLASSES_ROOT, csSubKey,
		_T(""), REG_EXPAND_SZ, (PUCHAR)csIconParameter.GetBuffer(0),&dwBufSize) )
		return 0;

	// shell/open/command 子键
	csSubKey.Format ( _T("%s//shell//open//command"), lpszProtocolName );
	if ( !CreateRegisterSubKey ( HKEY_CLASSES_ROOT, csSubKey ) )
		return 0;
	CString csCommand; csCommand.Format ( _T("/"%s/" /"%%1/""), lpszAssociatedApp );
	dwBufSize = csCommand.GetLength();
	if ( !WriteRegister ( HKEY_CLASSES_ROOT, csSubKey,
		_T(""), REG_EXPAND_SZ, (PUCHAR)csCommand.GetBuffer(0),&dwBufSize) )
		return 0;

	return 1;
}
以下源代码将删除自定义的Web协议:
//
// 卸载自定义的Web协议
//
BOOL UnRegWebProtocol ( LPCTSTR lpszProtocolName )
{   
	if ( !lpszProtocolName || lstrlen(lpszProtocolName) < 1 )
		return FALSE;

	return RegDeleteAllSubKey ( HKEY_CLASSES_ROOT, lpszProtocolName );
}
我提供一个详细的源代码可以演示整个过程,程序界面如下:



  先设置好需要注册的协议名称和关联的执行程序文件名,然后点[Register Protocol]按钮完成注册,点击[Test Protocol]按钮测试注册后的效果。
  如本例中注册一个“HXXP”协议,关联程序就是本程序,当点击[Test Protocol]按钮时就会执行该程序的另一个副本,同时[Test URL Parameter]输入的参数也被显示出来了。您也可以将“HXXP://Para1/Para2/Para2”复制到IE地址栏中执行,实现相同的效果,如下图:

 

OpenClaw:QQ Bot 的可插拔能力中枢与工程化实践指南 Bot 框架演进已从‘协议适配’迈向‘能力治理’——OpenClaw 正是这一范式转变的典型代表。它不处理消息收发或账号登录,而是定义标准化的 Skill(技能)接口、Event(事件)触发机制与 Context(上下文)透传规范,将 Bot 功能解耦为可独立开发、热加载、强契约约束的模块化服务。其技术价值在于提升功能复用率、降低协作成本、实现故障隔离,并天然支持 OneBot 协议桥接与多平台扩展。典型应用场景包括群指令响应、定时任务调度、API 聚合插件等。本文聚焦 OpenClaw 与 QQ Bot 阅读详情

相关推荐

OpenClaw Windows一键AI工作流平台:零基础部署AI Agent

AI Agent 是面向业务自动化的智能体执行范式,其核心在于将大模型能力封装为可编排、可触发、可监控的任务单元。实现稳定落地的关键在于运行时隔离与环境自包含——尤其在Windows桌面环境中,传统Python/Docker依赖管理极易失败。OpenClaw通过三层沙箱架构(物理层静态打包、运行时层进程守护、应用层YAML插件化),实现了真正开箱即用的AI工作流中枢。它支持飞书/钉钉/微信/邮件等主流办公协议接入,适用于自动化报表生成、合同归档、OCR解析、CRM数据同步等典型RPA+LLM混合场景,让非技

chongkuachan8070的博客 420

推荐:Sevabot - 高度可扩展的Skype聊天机器人

推荐:Sevabot - 高度可扩展的Skype聊天机器人 在微软逐步淘汰第三方API以限制Skype应用开发的大背景下,Sevabot是一个逆流而上的项目,它是一款基于Python编写的通用型Skype聊天机器人。这款工具不仅拥有强大的命令系统,还可通过HTTP请求和Webhooks发送聊天消息。得益于其灵活的架构,Sevabot不受限于Python语言,可以与其他编程语言无缝集成。 项目简介...

gitblog_00053的博客 1041

Skype 自动回复机C#源代码(原创)

//Skype 自动回复机C#源代码(原创)using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using SKYPEAPILib;namespace AutoReply{ ///  //

April的学习全纪录 5360

网页里添加Skype、WhatsApp及时聊天窗口

在网页开发中,有个需求,增加两个外国社交软件的窗口(Skype、WhatsApp)。 WhatsApp直接吊用链接:https://api.whatsapp.com/send?phone=86手机号码; Skype是要去Office的开发者平台->Skype->Skype 开发人员平台->Skype URIs   https://msdn.microsoft.com/zh-cn/library

Vanpoe的博客 1万+

Java面试题大全(2025版)

== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。

2401_89221704的博客 2442

Python实战:5分钟搞定固定翼无人机三自由度仿真(附完整代码)

本文提供了一个基于Python的固定翼无人机三自由度仿真快速实现方案。通过面向对象设计,封装了核心运动学模型,并对比了欧拉法与龙格-库塔法两种积分方法。文章附有完整实例代码,帮助算法工程师和研究人员在5分钟内搭建轻量级仿真环境,用于快速验证控制律、路径规划等核心算法逻辑。

docker7nomad的博客 749

网页中插入Skype链接标签 ,参数大全

这两天我们看了不少关于标签的知识。除了利用提供的网页来生成标签外,你也可以通过如下方法实现标签的高级功能。   使用链接   你可以把链接放入到HTML代码中,这样别人在打开页面后就能方便的联系你。缺省情况下为呼叫动作,你也可以设置为其他动作。下面是几个简单的例子。   点击 (呼叫echo123)   点击 (缺省动作 - 呼叫)   点击 (添加echo123为好友)    Jav

czs8585的专栏 1万+

最邻近点对问题(Closest-Pair Problem):二维的分治解法详解

低维时,最邻近点对问题可以利用分治求解。但是网络上相关资料良莠不齐,对于3维甚至难有有价值的参考。最近恰巧梳理了123维最邻近点对问题的相关知识,故在此分享。这是该系列的第二篇,介绍二维情况的分治解法。

Carl_Rabbit的博客 1万+

仿腾讯 QQ 和 Skype 通过URL触发自己的程序--安装时注册

 from: http://www.vckbase.com/index1.php/wv/1500.html

lys07962000的专栏 981

手把手教你用fusb302实现PD快充:从驱动移植到实战调试(附源码)

本文详细解析了基于FUSB302芯片实现USB PD快充的完整开发流程。内容涵盖芯片选型、硬件设计要点、Linux驱动移植与内核集成,并重点剖析了PD协议交互中的关键调试技巧,如“死亡15ms”时序问题与中断模式选择。文章通过实战经验,帮助嵌入式开发者高效完成从驱动移植到系统集成的全链路开发,并附有源码参考。

sky77的博客 378

海思Hi3519A开发:DSP开发指南

通过创建DSP项目、实现算法、编译调试等步骤,开发者可以充分利用Hi3519A芯片集成的DSP,实现各种音视频处理功能。通过以上示例,我们可以看到在Hi3519A开发平台上进行DSP开发是一项强大而灵活的任务。在调试过程中,可以使用调试工具提供的功能,如断点设置、变量查看等,以便更好地理解和优化DSP算法的执行过程。在Hi3519A开发平台上,我们可以利用DSP的高性能计算能力来加速这些算法的执行。在实际的DSP开发中,算法的实现可能更加复杂,需要结合具体的项目需求进行。3.2 DSP算法实现。

QoTypescript的博客 1496

像腾讯QQ和Skype一样定义自己的类似HTTP的Web协议,可以通过URL来触发自己的程序(附源码)

像腾讯QQ和Skype一样定义自己的类似HTTP的Web协议,可以通过URL来触发自己的程序(附源码)【版   本】1.0.0【操作系统】Windows 桌面操作系统【作   者】谢红伟·chrys ·chrys@163.com ·http://www.viction.net【开发公司】深圳市伟信科技开发有限公司【开发日期】2008-01

谢红伟的专栏 2087

基于百度地图API在AI Studio上的卫星地图块图像处理与分类

本项目基于百度地图API获取了不同的瓦片地图并进行合并等处理,可用于遥感和抽象地图的地图块的图像分类、分割、检测等数据的制作。瓦片地图金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。首先确定地图服务平台所要提供的缩放级别的数量N,把缩放级别最高、地图比例尺最大的地图图片作为金字塔的底层,即第0层,并对其进行分块,从地图图片的左上角开始,从左至右、从上到下进行切割,分割成相同大小(比如256x256像素)的正方形地图瓦片,形成第0层瓦片矩阵;

斌擎科技 747

在webKit中注册自定义协议类型

我们也可以通过iurlsearchhook的思想实现在webkit中实现这样的机制,以实现第三方的协议和应用。不过印象中firefox已经实现了。 仿腾讯 QQ 和 Skype 通过URL触发自己的程序   2013-01-15 14:44:42|  分类: 浏览器自动化测试|字号 订阅 如果你电脑中装有qq,在ie地址栏输入:“tencent:/

Felix的专栏 2034

SAP Joule Studio 全景解析

摘要:SAP Joule Studio是SAP Build平台中的低代码/专业级复合工作台,用于构建和管理企业专属的Joule智能体与技能。它支持通过拖拽和声明式编排实现跨系统任务自动化,与SAP及第三方系统集成。核心构件包括Agent(智能体)、Skill(技能)、Action(动作)和Project(项目)。Joule Studio强调企业级落地,与SAP Build Process Automation等工具协同,实现从设计到运行的全生命周期管理。典型应用场景包括供应链补货、财务关账和人力服务台自动化

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 399

超简单五步实现VOS3000客户端呼入配置

1.查看SIP代理  在注册管理中查看自己线路注册的SIP代理IP地址,记录下来。 2.创建普通账户  创建一个呼入使用的普通账号,选择“计费费率”,根据自己情况选择费率,这里做测试就配置了免费的费率,如果费率不是免费,需要给这个普通账户充值。 3.新建对接网关 新建一个对接网关,点击该网关的“补充设置”,选择“网关类型”为静态IP,然后在IP地址栏填上刚才在注册管理里面记录的SIP代...

非著名运维的博客 1万+

由Tencent://Message协议想到的一个解决方案

源代码下载:http://files.cnblogs.com/phinecos/HelloWorldProtocal.rar前天在BruceZhang 的一篇博文《求助:如何在ASP页面中调用Winform程序呢?》中回答了他提出的问题,但细想下觉得我的思路有误。    今天在试用WebQQ的时候,无聊中想起很多人的博客上都有这样的小玩意, ,  点击下就可以和博主进行对话,而且无需加博主

1335

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

最近流行的14种第三方0day挂马防御措施

 14种常见软件的0day防御措施: RealPlayer,暴风影音,PPStream,迅雷,联众世界,百度搜霸工具条,Adobe Reader,Qvod player,腾讯QQ,PPLive,Flash player,Skype ,QuickTime,超星阅读器! 【RealPlayer】 1. 漏洞说明 RealPlayer的MPAMedia.dll库所提供的RealPlayer数据库组件

1022

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

skype聊天链接 html,通过共享一个独特的链接,Skype可以轻松加入到一个聊天中

通过共享一个独特的链接,Skype可以轻松加入到一个聊天中今天,Skype团队发布了一项新的功能,可以使Skype用户更加轻松的与任何人交流,不管对方有没有Skype账号。使用这个新的功能,用户可以通过共享一个独特的链接来邀请任何人聊天。该独特的链接可以使用你选择的任何媒介发送,像电子邮件、社交媒体,甚至其他消息应用程序。然后,接收方可以打开这个链接,加入到最新版的Skype应用程序的对话中,即使...

weixin_32175665的博客 2424

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

在浏览器中显示Skype(Lync)信息及状态

Skype信息及状态展示在Skype(Lync)2013和2016上测试通过,2010未测试。需要在html中引用jquery、skype.js和skype.css自 Chrome 45 起,已经关闭 NPAPI 支持,所以目前最新的Chrome以及基于基于Chromium的第三方浏览器无法看到效果 目前只有在IE和火狐浏览器中支持,本地调试的时候效果会正常展示,但是如果发布到生产环境,需要在用

cslp517的专栏 3066
上一篇: 文件过滤系统驱动开发Filemon学习笔记
下一篇: 绕过现代Anti-Rookit工具的内核模块扫描
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值