Masz cały kod (działa):
TStringList *ListExt = new TStringList;
ListExt->Add(".ext1");
ListExt->Add(".ext2");//tu sobie dodajesz rozszerzenia, jakie ci się podobają...
ListExt->Add(".ext3");
TRegistry* Reg = new TRegistry();
for(int i=0; i<ListExt->Count; i++)
{
String ext = ListExt->Strings[i]; //rozszerzenie
String nazwa = "Moje";//jego nazwa
String opis = "Opis mojego rozszerzenia";//jego opis
//rejestracja rozszerzenia
Reg->RootKey = HKEY_CLASSES_ROOT;
Reg->OpenKey(ext, true);
Reg->WriteString("", nazwa);
Reg->CloseKey();
//otwarcie pliku po jego dwukrotnym kliknięciu w Eksploratorze
Reg->OpenKey(nazwa, true);
Reg->WriteString("", opis);
Reg->OpenKey("shell", true);
Reg->WriteString("", "open");
Reg->OpenKey("open", true);
Reg->WriteString("", "&Open");
Reg->OpenKey("command", true);
Reg->WriteString("", ParamStr(0) + " "\%1"");
Reg->CloseKey();
//wymyślona przez nas dodatkowa akcja jaką można wykonać na pliku
//czyli to co jest dostępne pod prawym przyciskiem myszy
Reg->OpenKey(nazwa, true);
Reg->OpenKey("shell", true);
Reg->OpenKey("info", true);
//Nazwa opcji:
Reg->WriteString("", "&Informacje");
//Wykonywana kacja, tu: uruchomienie jakiegos pliku (nie musi byc *.exe)
Reg->OpenKey("command", true);
Reg->WriteString("", "c:program.exe");
Reg->CloseKey();
//kojarzenie ikony z rozszerzeniem (taka sama jak ikona programu)
Reg->OpenKey(nazwa, true);
Reg->OpenKey("DefaultIcon", true);
//Aby ustawic inną ikonę niż programu,
//zamiast ParamStr(0), wpisz scieżkę dostępu do ikony.
Reg->WriteString("", "E:\\Soundman.ico,0");
}
delete Reg;
delete ListExt;