Вопрос: Как програмно зарегистрировать расширение файлов?
Хотелось бы чтобы при двойном-клике на файлах, стартовала бы моя прога и в нее загружался этот файл. 

Ответ :

Данный пример регистрирует расширение vdv 
И при клике на файл с таким расширение запускает программу 
и файл грузится в Memo1. 


code:
--------------------------------------------------------------------------------


void __fastcall TForm1::FormCreate(TObject *Sender)
{
   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();
      Reg->OpenKey("\\.vdv\\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 + " не существует");
     }
  }
}


--------------------------------------------------------------------------------


Нужно сначала запустить exe файл. Он зарегистрирует расширение. 
В следующий раз если кликнуть по файлу *.vdv файл будет загружен в Memo1
 
 



--------------------------------------------------------------------------------




	

Электронные Книги по компьютерным программам
На правах рекламы:
Логин
Пароль
Запомнить меня