How do you create your own moniker (URL Protocol) on Windows systems?

前端 未结 3 2101
说谎
说谎 2021-01-04 09:51

How do you create your own custom moniker (or URL Protocol) on Windows systems?

Examples:

  • http:
  • mailto:
  • service:
3条回答
  •  我在风中等你
    2021-01-04 10:32

    Here's some old Delphi code we used as a way to get shortcuts in a web application to start a windows program locally for the user.

    procedure InstallIntoRegistry;
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
        Reg.RootKey := HKEY_CLASSES_ROOT;
        if Reg.OpenKey('moniker', True) then
        begin
          Reg.WriteString('', 'URL:Name of moniker');
          Reg.WriteString('URL Protocol', '');
          Reg.WriteString('Source Filter', '{E436EBB6-524F-11CE-9F53-0020AF0BA770}');
          Reg.WriteInteger('EditFlags', 2);
    
          if Reg.OpenKey('shell\open\command', True) then
          begin
            Reg.WriteString('', '"' + ParamStr(0) + '" "%1"');
          end;
        end else begin
          MessageBox(0, 'You do not have the necessary access rights to complete this installation!' + Chr(13) +
            'Please make sure you are logged in with a user account with administrative rights!', 'Access denied', 0);
          Exit;
        end;
      finally
        FreeAndNil(Reg);
      end;
    
      MessageBox(0, 'Application WebStart has been installed successfully!', 'Installed', 0);
    end;
    

提交回复
热议问题