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;
}
}
Собственное расширение файла
его зарегистрировал следующим образом:
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 того фала на котором я кликнул?
Я думал через командную строку, но там нет никаких аргументов.
Заранее спасибо.
Цитата:
Originally posted by Gscom
У меня есть собственное расширение фала. Я
его зарегистрировал следующим образом:
...
Заранее спасибо.
У меня есть собственное расширение фала. Я
его зарегистрировал следующим образом:
...
Заранее спасибо.
Сильно не вникал, некогда вот код:
Код:
много лишнего, в коммандной строке все есть...