Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Открытие программы по щелчку на ее файле


defenseur ©   (2003-02-01 12:15:00) 

Как из Delphi сделать, чтобы файлы определенного типа ассоциировались с моей прогой и по нажатию на эти файлы в Explorer открывалась прога и выполнялась процедура открытия этого файла


Anatol   (2003-02-12 12:16:00) [1]

Это все прекрасно работает под Win95/98 и WinXP в режиме администратора.
А вот как это сделать в WinXP под user"ом???


Builder   (2003-02-05 02:32:00) [2]

не все так просто - если поменять под ХР через проводник программу, которая запускаеться для опреленного типа, то она меняет это все не в HKEY_CLASSES_ROOT;
Посему смотреть еще нужн


blackman   (2003-02-02 16:43:00) [3]

Может быть так:
uses registry;
procedure TForm1.RegisterFileType(prefix:String; exepfad:String);
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
//create a new key --> .pci
reg.OpenKey("."+prefix,True);
//create a new value for this key --> pcifile
reg.WriteString("",prefix+"file");
reg.CloseKey;
//create a new key --> pcifile
reg.CreateKey(prefix+"file");
//create a new key pcifile\DefaultIcon
reg.OpenKey(prefix+"file\DefaultIcon",True);
//and create a value where the icon is stored --> c:\project1.exe,0
reg.WriteString("",exepfad+",0");
reg.CloseKey;
reg.OpenKey(prefix+"file\shell\open\command",True);
//create value where exefile is stored --> c:\project1.exe "%1"
reg.WriteString("",exepfad+" "%1"");
reg.CloseKey;
reg.Free;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
RegisterFileType("pci","c:\project1.exe");
end;


Nick_N_A   (2003-02-02 05:51:00) [4]

Забыл сказать, есть прога RegEdit.exe на любом компе с виндой


Nick_N_A   (2003-02-02 05:48:00) [5]

Admin>Конечно это копп-железо ?!

defenseur> изучи ветвь HKey_Classes_Root в системном реестре
список расширений ссылается на обработчик расширения, пример
[Root\.bmp]@="bmpfile"
[Root\bmpfile\shell\open\command]/* команда открыть, */
@="mspaint.exe "%1""/* обработчик Paint*/
/* %1 - вместо него будет файл в коммандной строке
прим: msPaint.exe "May picture1.bmp" */
[Root\bmpfile\DefaultIcon]
@="%1"а это ссылка на иконку, сюда можно 1.ico,
"1.dll, 5","1.exe"

Проще всего работать с ТRegistry
r.RootKey:=HKey_Classes_Root
r.OpenKey("\bmpfile\DefaultIcon",true)
r.WriteString("","1.ico");{собака-по умолчанию -> пусто}

еще проще создать файл *.reg (к примеру 1.reg), за тем запустить его,

REGEDIT4
[HKEY_CLASSES_ROOT\.C--]
@="C--FILE"
[HKEY_CLASSES_ROOT\C--FILE\shell\open\command]
@="D:\\c--\\c--.exe %1"

[HKEY_CLASSES_ROOT\C--FILE\DefaultIcon]
@="shell32.dll,-2"


Anatoly Podgoretsky   (2003-02-01 13:06:00) [6]

Смотри в реестре раздел CLASSES


Наверх

Титульная страница Поиск, карта сайта Написать письмо