Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регистрация типа файла, Как зарегестрировать свой тип? 
:(
    Опции темы
Dr Smth
  Дата 18.10.2004, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 11.10.2004
Где: New Podrezkovo

Репутация: нет
Всего: 1



Не подскажите, каким образом можно зарегестрировать свой тип файлов и сопоставить его своей же программе (не важно когда - при установке, при первом запуске)?
PM MAIL WWW   Вверх
Medved
Дата 18.10.2004, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Код
Uses Registry;

procedure RegisterFileType(FileType,FileTypeName, Description,ExecCommand:string);
begin
 if (FileType='') or (FileTypeName='') or (ExecCommand='') then exit;  
 if FileType[1]<>'.' then FileType:='.'+FileType;  
 if Description='' then Description:=FileTypeName;  

 with Treginifile.create do  
 try  
   rootkey := hkey_classes_root;  
   writestring(FileType,'',FileTypeName);  
   writestring(FileTypeName,'',Description);  
   writestring(FileTypeName+'\shell\open\command','',ExecCommand+' "%1"');  
 finally  
   free;  
 end;  
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 RegisterFileType('txt','TxtFile', 'Plain text','notepad.exe');  
end;



--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Dr Smth
Дата 20.10.2004, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 11.10.2004
Где: New Podrezkovo

Репутация: нет
Всего: 1



Здорово. А можно ещё заставить сопоставить типу файла определённую иконку (например, размещённую в каталоге с самой программой)? И вообще, как в Delphi программным способом узнать путь к исполняемому файлу.
PM MAIL WWW   Вверх
p0s0l
Дата 21.10.2004, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата
И вообще, как в Delphi программным способом узнать путь к исполняемому файлу.

ExtractFilePath(Application.ExeName)

Цитата
А можно ещё заставить сопоставить типу файла определённую иконку (например, размещённую в каталоге с самой программой)?

В подключе DefaultIcon пишешь имя файла, содержащего иконку, и № иконки...



--------------------
С уважением, г-н Посол.
PM   Вверх
Dr Smth
Дата 26.10.2004, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 11.10.2004
Где: New Podrezkovo

Репутация: нет
Всего: 1



Она должна быть обязательно в exe или dll?
PM MAIL WWW   Вверх
p0s0l
Дата 26.10.2004, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Можно .ico указывать...
Объясню понятнее...
Предположим, надо у файла .psl сделать свою иконку.
В реестре в CLASSES_ROOT создаём ключ .psl.
У этого ключа есть параметр Default (если смотреть в RegEdit). Пишешь в него значение, к примеру: Posol.File
Теперь опять в CLASSES_ROOT создаём ключ, но теперь уже Posol.File
В нём создаём подключ DefaultIcon, и в этот подключ пишем, к примеру: C:\1.ico
В итоге код будет примерно таким:
Код
uses Registry;
...
var
 R : TRegistry;
begin
 R := TRegistry.Create;
 R.RootKey := HKEY_CLASSES_ROOT;
 R.OpenKey('.psl', True);
 R.WriteString('', 'Posol.Files');
 R.OpenKey('\Posol.Files\DefaultIcon', True);
 R.WriteString('', 'C:\1.ico');
 R.Free;
end;



--------------------
С уважением, г-н Посол.
PM   Вверх
Dr Smth
Дата 26.10.2004, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 11.10.2004
Где: New Podrezkovo

Репутация: нет
Всего: 1



А ExtractFilePath(Application.ExeName) + '1.ico' можно в качестве пути?
PM MAIL WWW   Вверх
p0s0l
Дата 26.10.2004, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Dr Smth, можно


--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0707 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.