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

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

Регистрация типов файлов [D7, WinME]


clampo ©   (2004-10-03 21:33:00) 

Привет всем мастерам!!! :).
Взял я этот код из FAQ. Но он работает с недостатками:
1) При регистрации на файл pci ставиться значок приложения,
как сделать чтобы поставить свой значок (н\р зи папки с этим приложением).
2) Регистрируются только неизвестные типы файлов, а если раньше они были под другой прогой то так и остаются под ней.
3) Какая процедура нужна для дерегистрации файлов.
Помогите решить вопросы
//Use the registry to register your own filetype.

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;


clampo   (2004-10-06 10:21:00) [1]

Что такое инициализация приложения. Может это файл *.dpr ?


XProger   (2004-10-05 23:02:00) [2]


reg:=TRegistry.Create;        //Создаём переменную реестра
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('\.POD\',true);               //Создаём "ключ" (если его нет)
reg.WriteString('','PODEditor');           //Строка по умолчанию
reg.OpenKey('\PODEditor\DefaultIcon\',true); //Берём иконку файла из
reg.WriteString('',ParamStr(0)+',0');        //EXE'шника проги
reg.OpenKey('\PODEditor\shell\open\command\',true); //Открываем ключ команд
reg.WriteString('',ParamStr(0)+' %1'); //Прописываем путь к EXE'шнику
reg.CloseKey;                      //Закрываем "ключ"
reg.Free;                     //Удаляем переменную реестра


Вставляй в инициализацию приложения...


clampo   (2004-10-04 15:29:00) [3]

Что такое "1.3"


П7   (2004-10-04 13:24:00) [4]

смотри 1.3


clampo   (2004-10-04 12:46:00) [5]

А как зарегистрировать те типы файлов которые раньше были под другой прогой. Значок меняется а регистрации под мою прогу нет.


GuAV   (2004-10-03 22:01:00) [6]

1)
reg.OpenKey(prefix+'file\DefaultIcon',True); //and create a value where the icon is stored --> c:\project1.exe,0
reg.WriteString('', 'c:\my.ico');
или писать Icon Handler
3) Удалить все созданные ключи


Наверх

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