Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.46 MB
Время: 0.009 c
1-19606
[BAD]Angel
2003-03-26 11:39
2003.04.07
Удаление элементов из ListBox


14-19801
Keymaster
2003-03-17 11:30
2003.04.07
Надо издать книгу


1-19652
Фагот
2003-03-25 17:54
2003.04.07
StringList


1-19675
Johnmen
2003-03-24 10:45
2003.04.07
OLEAUT.DLL


4-19935
Sliski Slimak
2003-01-24 18:15
2003.04.07
Подсказки в стиле WinXP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский