Parametri:
1. aExt - extensia fisierului (ex.: avi, mp3)
2. aExePath - calea catre executabilul aplicatiei voastre
3. aRegister - daca e True sa va face asocierea; daca e False, asocierea va fi eliminata
- ...
- uses
- Registry, ShlObj;
- ...
- procedure RegisterFileType(aExt: string; aExePath: string; aRegister: boolean);
- var
- lReg: TRegistry;
- begin
- if (aExt[1] = '.') then
- Delete(aExt, 1, 1);
- lReg := TRegistry.Create;
- try
- lReg.RootKey := HKEY_CLASSES_ROOT;
- // Stergere chei din Registry daca dorim sa eliminam asocierea
- if (not aRegister)
- then
- begin
- // Daca extensia lipseste din Registry, ne oprim aici
- if (not lReg.KeyExists('.' + aExt)) then
- Exit;
- lReg.DeleteKey('.' + aExt);
- lReg.DeleteKey(aExt + 'file\DefaultIcon');
- lReg.DeleteKey(aExt + 'file\shell\open\command');
- end
- else
- begin
- // Verificam daca extensia exista deja in Registry. Daca exista, nu facem modificari.
- if lReg.KeyExists('.' + aExt) then
- Exit;
- // Scriere valori necesare in Registry
- lReg.OpenKey('.' + aExt, True) ;
- lReg.WriteString('', aExt + 'file') ;
- lReg.CloseKey;
- lReg.CreateKey(aExt + 'file') ;
- lReg.OpenKey(aExt + 'file\DefaultIcon', True) ;
- lReg.WriteString('', aExePath + ',0') ;
- lReg.CloseKey;
- lReg.OpenKey(aExt + 'file\shell\open\command', True) ;
- lReg.WriteString('', aExePath + ' "%1"') ;
- lReg.CloseKey;
- end;
- finally
- lReg.Free;
- end;
- // Notificare sistem de operare, astfel incat modificarea sa aiba efect imediat
- SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil) ;
- end;
Welcome to BitCell. Click here to register !