Форум: "Система";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизОткрытие программы по щелчку на ее файле Найти похожие ветки
← →
defenseur (2003-02-01 12:15) [0]Как из Delphi сделать, чтобы файлы определенного типа ассоциировались с моей прогой и по нажатию на эти файлы в Explorer открывалась прога и выполнялась процедура открытия этого файла
← →
Anatoly Podgoretsky (2003-02-01 13:06) [1]Смотри в реестре раздел CLASSES
← →
Nick_N_A (2003-02-02 05:48) [2]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"
← →
Nick_N_A (2003-02-02 05:51) [3]Забыл сказать, есть прога RegEdit.exe на любом компе с виндой
← →
blackman (2003-02-02 16:43) [4]Может быть так:
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;
← →
Builder (2003-02-05 02:32) [5]не все так просто - если поменять под ХР через проводник программу, которая запускаеться для опреленного типа, то она меняет это все не в HKEY_CLASSES_ROOT;
Посему смотреть еще нужн
← →
Anatol (2003-02-12 12:16) [6]Это все прекрасно работает под Win95/98 и WinXP в режиме администратора.
А вот как это сделать в WinXP под user"ом???
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c