delphi - 监控自定义 URL 协议消息 - Delphi
问题描述
有人举个例子,说明我如何在我的桌面应用程序中处理来自网页的自定义 URL 协议,比如缩放(你有一个链接,这会在桌面应用程序中打开会议)?
如果有人有很好的例子或他可以为此目的分享的东西,我会很高兴。
解决方案
这是注册表项的问题。查看Microsoft 文档。
下面的代码可以为您创建它:
function RegisterURLProtocol(
const ProtocolID : String;
const ProtocolName : String;
const DefaultIcon : String;
const OpenCommand : String) : Boolean;
var
Reg : TRegistry;
begin
Result := FALSE;
Reg := TRegistry.Create(KEY_WRITE);
try
Reg.RootKey := HKEY_CLASSES_ROOT;
if not Reg.OpenKey(ProtocolID, TRUE) then
Exit;
Reg.WriteString('', 'URL:' + ProtocolName);
Reg.WriteString('URL Protocol', '');
if Reg.OpenKey('DefaultIcon', True) then begin
Reg.WriteString('', DefaultIcon);
end;
Reg.CloseKey;
if not Reg.OpenKey(ProtocolID + '\shell\open\command', True) then
Exit;
Reg.WriteString('', OpenCommand);
Result := TRUE;
finally
FreeAndNil(Reg);
end;
end;
推荐阅读
- rest - 如何处理来自 REST 的多种类型的异常
- couchbase - 想在我的 CouchBase 中借助复合键插入数据但面临这个问题
- r - 哪些字符(不)用于 ID (R)
- javascript - 如何从数组中返回多个 then/catch 链
- javascript - 使用计算属性名称作为导出函数名称
- html - 使用 display:flex 时文本溢出不起作用
- python - Pandas 数据框查询
- jenkins - Jenkins 声明式管道 - 从工作区中运行的命令的输出中动态填充输入步骤的选择
- java - 将 BaseEntity 用于 JPA 实体时,Sonar 中的“等于错误”
- c# - 发行版中的键盘控件问题 - 在统一编辑器中未发生