Whoa, Who'd have thought it would be this simple? 

Code:
procedure TForm1.RegisterFileType(ExtName:String);
var
a: byte;
begin
a:=0;
with TRegistry.Create do
try
RootKey := HKEY_CLASSES_ROOT;
DeleteKey('\.avi\');
if OpenKey('\.avi\', True) then begin
WriteString('','avifile');
WriteString('PerceivedType', 'video');
WriteString('Content Type', 'video/avi');
end;
OpenKey('\.avi\OpenWithList\ehshell.exe\', True);
if OpenKey('\.avi\OpenWithProgIds\', True) then
WriteBinaryData('avifile', a, 1);
if OpenKey('\avifile\shell\open\command\', True) then
WriteString('', '"'+ParamStr(0)+'" "%1"');
RootKey := HKEY_CURRENT_USER;
DeleteKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.avi\');
if OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.avi\OpenWithProgids\', True) then
WriteBinaryData('avifile', a, 1);
finally
Free;
end;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
end;
![[Image: cinjin_banner_border.jpg]](https://images.weserv.nl/?url=oggtheclever.com%2Fcinjin_banner_border.jpg)