Вопрос: Как программно зарегистрировать собственное расширение для файлов в WINDOWS?
Ответ :
code:
--------------------------------------------------------------------------------
TRegistry *Reg;
AnsiString asFileName;
Reg = NULL;
try
{
Reg = new TRegistry;
Reg->RootKey = HKEY_CLASSES_ROOT;
Reg->OpenKey("\\.vdv", true);
Reg->WriteString("", "MyProg");
Reg->CloseKey();
Reg->OpenKey("\\MyProg", true);
Reg->WriteString("", "My document");
Reg->CloseKey();
Reg->OpenKey("\\MyProg\\Shell\\Open\\Command", true);
Reg->WriteString("", ParamStr(0) + " \"%1\"");
Reg->CloseKey();
Reg->OpenKey("\\MyProg\\DefaultIcon", true);
Reg->WriteString("", ParamStr(0) + ", 1");
Reg->CloseKey();
}
__finally
{
if (Reg != NULL)
{
delete Reg;
}
}
if (ParamCount > 0)
{
asFileName = ParamStr(1);
if (FileExists(asFileName))
{
Memo1->Lines->LoadFromFile(asFileName);
}
else
{
ShowMessage(asFileName + " не существует");
}
}
--------------------------------------------------------------------------------
Этот пример срегистрирует расширение *.vdv
И при клике на файл с таким расширением загружает текст из него в
Memo1.
Reg->OpenKey("\\MyProg\\DefaultIcon", true);
Последний параметр имеет не булевый тип, а целочисленный.
Определяет номер иконки из .exe.
И если, например, будет стоять 2, то иконка файла будет показана вторая.
Я так делал для возможности выбора оной из множества.
--------------------------------------------------------------------------------
|