Mega Code Archive

 
Categories / Delphi / LAN Web TCP
 

How to register an own Protocol (TCP)

Title: How to register an own Protocol (TCP) procedure RegisterProtocol(const Name, Describtion, ExecuteStr: string); var reg: TRegistry; begin reg := TRegistry.Create; try reg.RootKey := HKEY_CLASSES_ROOT; reg.OpenKey(Name, True); try reg.Writestring('', 'URL:' + Name +' (' + Describtion + ')'); reg.WriteInteger('EditFlags', 2); reg.WriteString('Source Filter', ''); reg.WriteString('URL Protocol', ''); reg.OpenKey('shell', True); reg.OpenKey('open', True); reg.OpenKey('command', True); reg.Writestring('', ExecuteStr); finally reg.CloseKey; end; finally reg.Free; end; end; This procedure allows you to delete a protocol again. Attention: HTTP FTP HTTPS can also be deleted. procedure UnregisterProtocol(const Name: string); var reg: TRegistry; begin reg := TRegistry.Create; try reg.RootKey := HKEY_CLASSES_ROOT; reg.DeleteKey(Name); finally reg.Free; end; end; A little example shall illustrate the using. We register the "chatprotocol" and read the ParamStr. After the registering you should go START|EXECUTE and enter "Chat://OnlyAText". After that you should click button2 to delete the protocol again. components: Memo1: TMemo; Button1: TButton; Button2: TButton; } procedure TForm1.Button1Click(Sender: TObject); var Name, Describtion, Executestr: string; begin Name := 'CHAT'; Describtion := 'BSN CHAT SERVER'; ExecuteStr := Application.ExeName + '%1'; RegisterProtocol(Name, Describtion, ExecuteStr); end; procedure TForm1.Button2Click(Sender: TObject); begin UnRegisterProtocol('CHAT'); end; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i := 0 to PARAMCOUNT do Memo1.Lines.Add(ParamStr(i)); end;