监控自定义URL协议消息 - Delphi

时间:2011-04-10 19:48:54

标签: delphi url protocols monitor

如您所知,custom url protocol是一项允许我们在网页和应用程序之间进行通信的功能。例如,Y!当您想通过网页向其他人发送pm时,Messenger使用此协议:

 <a href="ymsgr:sendim?YahooID">Click to send pm</a>

现在,问题是如何监控(挂钩)Windows中的所有custom url protocol消息?是否有可能抓住它们?

3 个答案:

答案 0 :(得分:6)

迭代注册表的内容,寻找已注册的自定义协议。这些将是HKey_Classes_Root键的子级,其值为 URL Protocol 。每次找到一个,记录 shell \ open \ command 键的默认值,然后用指向程序的命令行替换它。

调用程序时,执行您需要执行的操作,然后使用之前记录的命令行调用原始程序。

答案 1 :(得分:1)

您可以注册自己的协议:Can Delphi be used to create and handle a custom protocol handler?只需在用户注册表中添加几个密钥(协议名称和应用程序即可启动)。它类似于寄存器文件扩展名。简单的例子是here

我不确定您是否可以捕获每个请求。防病毒程序可以做到这一点,但是在驱动程序级别。

答案 2 :(得分:0)

您可能需要查看Fiddler HTTP Web Debugger,它通过成为临时代理拦截所有HTTP流量。

它不是用Delphi编写的,但应该让你对如何处理问题有所了解。