首页 > 解决方案 > 监控自定义 URL 协议消息 - Delphi

问题描述

有人举个例子,说明我如何在我的桌面应用程序中处理来自网页的自定义 URL 协议,比如缩放(你有一个链接,这会在桌面应用程序中打开会议)?

如果有人有很好的例子或他可以为此目的分享的东西,我会很高兴。

标签: delphiurlprotocols

解决方案


这是注册表项的问题。查看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;

推荐阅读