procedure CopyOldFiletype(Ext: string; NewFiletype: string); var OldFiletype: string; OldIcon: string; OldApp: string; begin if RegKeyExists(HKCR, '.' + Ext) then begin RegQueryStringValue(HKCR, '.' + Ext, '', OldFiletype); if OldFiletype <> NewFiletype then begin if RegQueryStringValue(HKCR, OldFiletype + '\DefaultIcon', '', OldIcon) then RegWriteStringValue(HKCR, NewFiletype + '\DefaultIcon', '', OldIcon); if RegQueryStringValue(HKCR, OldFiletype + '\shell\open\command', '', OldApp) then begin RegWriteStringValue(HKCR, NewFiletype + '\shell\open', '', '&Open'); RegWriteStringValue(HKCR, NewFiletype + '\shell\open\command', '', OldApp); end; if RegQueryStringValue(HKCR, OldFiletype + '\shell\Play\command', '', OldApp) then begin RegWriteStringValue(HKCR, NewFiletype + '\shell\Play', '', '&Play'); RegWriteStringValue(HKCR, NewFiletype + '\shell\Play\command', '', OldApp); end; end; end; end; procedure CopyOldFiletypes; begin CopyOldFiletype('mkv', 'MatroskaVideo'); CopyOldFiletype('mp4', 'mp4file'); CopyOldFiletype('ogm', 'ogmfile'); end;