Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Собственное расширение файла

4.7K
27 октября 2004 года
Gscom
11 / / 26.01.2004
У меня есть собственное расширение фала. Я
его зарегистрировал следующим образом:

AnsiString curdir="c:\\myprog;
curdir=curdir+"prog.exe";
AnsiString clsid = "\\CLSID\\{A8B37140-A66B-4436-9855-980323B7B76B}";

TRegistry* reg = new TRegistry();
reg->RootKey = HKEY_CLASSES_ROOT;
reg->OpenKey("\\.mdb",true);
reg->WriteString("",clsid);
reg->OpenKey(clsid,true);
reg->WriteString("","Gscom Mp3Player");
reg->OpenKey(clsid+"\\ShellIcon",true);
reg->WriteString("",curdir+", 4");
reg->OpenKey(clsid+"\\Shell\\Open\\Command",true);
reg->WriteString("",curdir);
delete reg;
Программа запускается, но как получить FileName того фала на котором я кликнул?
Я думал через командную строку, но там нет никаких аргументов.
Заранее спасибо.
246
27 октября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Gscom
У меня есть собственное расширение фала. Я
его зарегистрировал следующим образом:
...
Заранее спасибо.


Сильно не вникал, некогда вот код:

Код:
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
    TRegistry *Reg;

    //Hint
    Application->OnHint = ApplicationHint;
    MakePrinterHint();

    //Подготовка к приему файлов из проводника
    DragAcceptFiles(Handle, true);

    try {
        HistList = new TStringList;         // создать список HistList
        Reg = new TRegistry;                // создать объект Reg
        /**************** Регистрация иконки и расширения файла ***********/
        Reg->RootKey=HKEY_CLASSES_ROOT;
        Reg->OpenKey("\\.rmp",True);
        Reg->WriteString("", "mapedit_file");
        Reg->CloseKey();
        Reg->OpenKey("\\mapedit_file", True);
        Reg->WriteString("", "Файл картограммы реактора");
        Reg->CloseKey();
        Reg->OpenKey("\\mapedit_file\\Shell\\Open\\Command", True);
        Reg->WriteString("",ParamStr(0)+" %1");
        Reg->CloseKey();
        Reg->OpenKey("\\mapedit_file\\DefaultIcon", True);
        Reg->WriteString("",ParamStr(0)+", 1");
        Reg->CloseKey();
        /****************************************************************/
        Reg->RootKey =  HKEY_CURRENT_USER;
        if (!Reg->OpenKey(RegKey, false)) { // Ключ RegKey не найден - первый запуск программы
            Reg->OpenKey(RegKey, true);     // открыть ключ RegKey
            Reg->WriteString("Hist1", "");  // очистить 1-й элемент
            Reg->WriteString("Hist2", "");  // очистить 2-й элемент
            Reg->WriteString("Hist3", "");  // очистить 3-й элемент
            Reg->WriteString("Hist4", "");  // очистить 4-й элемент
            //
            Reg->WriteInteger("Left", 0);
            Reg->WriteInteger("Top", 0);
            Reg->WriteInteger("Width", 400);
            Reg->WriteInteger("Height", 300);
            Reg->WriteBool("ViewExplorer", true);
        }
        //Чтение списка истории открытия файлов.
        HistList->Add(Reg->ReadString("Hist1"));
        HistList->Add(Reg->ReadString("Hist2"));
        HistList->Add(Reg->ReadString("Hist3"));
        HistList->Add(Reg->ReadString("Hist4"));
        //Чтение положения/размеров окна
        Left = Reg->ReadInteger("Left");
        Top = Reg->ReadInteger("Top");
        Width = Reg->ReadInteger("Width");
        Height = Reg->ReadInteger("Height");
        //Чтение состояния среды
        FViewExplorer = Reg->ReadBool("ViewExplorer");
    }
    __finally {
        delete Reg;
    }
}

много лишнего, в коммандной строке все есть...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог