![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте! Не подскажете как заставить файлы (текст, графика) автоматически по щелчку из windows открываться программой на delphi (текст, графика). Везде смотрел, именно этого нигде не нашел. Заранее спасибо
|
|
#2
|
|||
|
|||
|
Если программа на Delphi умеет открывать файлы, то дальше вопрос к Windows.
Открывается проводник. Меню "Сервис" > "Свойства папки...". В открывшемся диалоге закладка "Типы файлов". Из списка выбирается нужное расширение (или добавляется свое, если такого расширения в списке нет). Нажимается кнопка "Изменить". В диалоге через кнопку "Обзор..." указывается программа на Delphi. |
|
#3
|
||||
|
||||
|
Можно сразу в Delphi
Создаешь раздел в реестре HKEY_CLASSES_ROOT\{твое расширение} Далее значение по умолчнию - это описание файла HKEY_CLASSES_ROOT\{твое расширение}\DefaultIcon Значение по умолчнию - иконка файла HKEY_CLASSES_ROOT\{твое расширение}\shell\open\command Значение по умолчанию - путь к программе Пример Код:
uses
Registry;
procedure RegisterMyFileType(Ext, Description, Icon, ExePath: String);
begin
with TRegistry.Create do
begin
RootKey:=HKEY_CLASSES_ROOT;
OpenKey(Ext, True);
WriteString('', Description);
CloseKey;
OpenKey(Ext + '\DefaultIcon', True);
WriteString('', Icon);
CloseKey;
OpenKey(Ext + '\shell\open\command', True);
WriteString('', ExePath);
CloseKey;
Free;
end;
end;Код:
RegisterMyFileType('.txt', 'Текстовый файл', Application.ExeName + ', 0', Application.ExeName + ' %1'); |
|
#4
|
||||
|
||||
|
В догонку к ответу, программа открываться то будет, но неизвестно какой файл открывать. В FormCreate получи значение ParamStr(1) и это будет путь к твоему файлу.
PS> Ещё как вариант: Суть такая же, мы регистрируем за собой определённый тип файла и потом при открытии его, делаем необходимую обработку. Но уже через Com объект. В этом случае будет больше возможностей, но сложнее реализация) |
|
#5
|
|||
|
|||
|
Я сейчас тоже решаю эту задачу . Можете объяснить , что это за ParamStr(1) и как его получать?
|
|
#6
|
|||
|
|||
|
Командная строка которая передается на вход программе.
Например ParamStr(0) - это путь к твоей проге. |