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

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

Как открыть файл с помощью моей программы [D7, WinXP]


Sourse ©   (2004-08-07 20:15:00) 

Скажите пожалуйста, как открыть файл с помощью  программы и, одновременно, открыть файл в этой программе? На первую часть вопроса я ответ знаю. Мне нужно, чтобы программа узнавала какой файл её открывает.


GrayFace   (2004-08-13 12:03:00) [1]

Где-то тут было это. Кажется, в FAQ.
Работа с реестром: uses Registry, TRegistry+F1 -> Using TRegistry.
Что делать в реестре:
Запускай regedit и смотри:
HKEY_CLASSES_ROOT\.txt\(def)(значение по умолчанию) - ссылка на описание(например 'SourseTXT')
HKEY_CLASSES_ROOT\SourseTXT\(def)- Тип документа ('Текстовый Sourse')
HKEY_CLASSES_ROOT\SourseTXT\DefaultIcon\(Def)- Путь до иконки ('c:\Sourse.exe,0')
HKEY_CLASSES_ROOT\SourseTXT\shell\open\(def)- Название пункта меню (Открыть Sourse). Если не присвоено, будет Openна Англ. винде и Открыть- на Рус.
HKEY_CLASSES_ROOT\SourseTXT\shell\Sourse\(def)- так же, но если не присвоено, то Sourse
HKEY_CLASSES_ROOT\SourseTXT\shell\open\command\(def)- командная строка ('c:\Sourse.exe "%1"')


TUser   (2004-08-12 21:44:00) [2]

Не думаю, что тут речь о вирусе. Вобщем - подменяй своей прогой ту, которая прописана для данного типа файлов. При клике на иконку файла - читай его и открывай ту прогу, которую ты доблестно лишил права называтсья стандартным эдитором. Только иконку назначь такую же, как раньше была.


OSokin   (2004-08-12 20:26:00) [3]

Если простые, текстовые файлы - то используй AssignFile. Справку сам найдешь.


wnew   (2004-08-07 21:54:00) [4]

Упрощённо так:


procedure TForm1.FormCreate(Sender: TObject);
var DateiName: String;
   DateiErweiterung: String;
begin
 if ParamCount > 0 then
   begin
     DateiErweiterung := '';
     DateiName := ParamStr(1);
     DateiErweiterung := UpperCase(Copy(DateiName,Length(DateiName) - 3,4));

     if (DateiErweiterung = '.BMP') or (DateiErweiterung = '.JPG') then
     begin
       Image1.Picture.LoadFromFile(DateiName);
     end;
   end;
end;


В проводнике Windows, если у тебя XP, кликаешь интересующий тебя файл правой кнопкой, откроется контекстное меню, там выберешь (не знаю, как обзываются эти пункты меню в русском виндовсе, но думаю догадаешься) открыть такой-то прогой:), далее в открывшемся окне нажимаешь искать и ищешь собственную программу, затем ставишь галочку - этот тип файла всегда открывать этой программой. Если у тебя не XP, то держишь Shift и кликаешь правой кнопкой, далее - как описанно выше.

Для того, что бы протестировать передачу параметров командной строки во время отладки (опять не знаю, как будет в английском меню Delphi, у меня немецкая:)) кликаешь Start, выбираешь Parameter и там в поле Parameter вводишь имя файла, далее обычно:)


Anatoly Podgoretsky   (2004-08-07 21:38:00) [5]

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


Вася   (2004-08-07 21:28:00) [6]

Кстати, заразить exeэшник не сложно. Спроси меня как! ;))


Вася   (2004-08-07 21:26:00) [7]

короче, тебе нужно, чтобы твоя программа запускалась по двойному щелчку на файл определенного типа? Это нужно прописывать в реестре.


Sourse   (2004-08-07 21:17:00) [8]

Тестировщица ©   (07.08.04 21:16) [10]

Ну, извините. Спасибо за ответ и разъяснение отдельное спасибо.


Тестировщица   (2004-08-07 21:16:00) [9]

А мне кажется, что Вы не поняли ответа -)
Дело в том, что при запуске приложения ему в командной строке передается имя файла, по которому Вы соизволили щелкнуть. А для получения командной строки можно использовать ParamStr(1)


Sourse   (2004-08-07 21:16:00) [10]

Anatoly Podgoretsky ©   (07.08.04 21:08) [8]

Похоже, что вы тоже не поняли моего вопроса. И очень сильно не поняли.

Мне нужно только, чтобы содержимое открываемого файла определённого расширение попадало в мою программу. При чём тут вирусы?


Anatoly Podgoretsky   (2004-08-07 21:08:00) [11]

Это называется вирус(ные технологии)


Sourse   (2004-08-07 21:04:00) [12]

Тестировщица ©   (07.08.04 20:54) [5]

Мне кажется, что вы не поняли моего вопроса.


Sourse   (2004-08-07 20:58:00) [13]

Вася   (07.08.04 20:50) [4]

Ну вот ты открываешь файл с расширением txt. Запускается блокнот, при этом содержимое файла txt сразу загружается в блокнот.

Интересно, а что ты понимаешь под сумасшествием?


Тестировщица   (2004-08-07 20:54:00) [14]

F1 ParamStr, ParamCount


Вася   (2004-08-07 20:50:00) [15]

Ты хоть сам понял, что сказал? В какую программу? Куда именно?
Бред сумасшедшего чистой воды


Sourse   (2004-08-07 20:33:00) [16]

wnew ©   (07.08.04 20:24) [1]

Действительно, ничего не понял. А ведь пытался сформулировать вопрос как можно понятнее.

Просто говоря, мне надо, чтобы при открытии файлов определённого расширение, содержимое этих файлов загружалось в мою программу. Я не знаю как загружать содержимое файлов в программу.


OSokin   (2004-08-07 20:32:00) [17]

Если тебе просто надо открыть файл, то справку по AssignFile с примером почитай...


wnew   (2004-08-07 20:24:00) [18]

Представь себе, что ты не знаешь о чём речь идёт. А теперь попробуй понять о чём речь в написаном тобой:)


Наверх

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