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

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

Как связать расширение с прогой? [D6, Win95/98, Win2k]


Intell ©   (2003-04-19 19:09:00) 

У меня плеер, нужно, чтобы медиа открывалось через него. Как в Winamp`е - открылось и заиграло...


Intell   (2003-05-27 11:23:00) [1]

Rocker, огромное спасибо, сработало! Испробовал исходник только вчера.


Intell   (2003-04-21 12:30:00) [2]

Rocker, посмотрю и заценю. Спасибо за ответ.


Rocker   (2003-04-21 07:24:00) [3]

Нужно зарегистрировать это расширение ("ext"). Для этого в реестре нужно создать два раздела. Первый HKEY_CLASSES_ROOT\.ext. В нем, в параметре "по умолчанию" нужно написать "MyProg". В разделе KEY_CLASSES_ROOT\MyProg "по умолчанию" поставь "Файл моей программы". Эта фраза будет отображаться в Проводнике в колонке "Тип". А в HKEY_CLASSES_ROOT\MyProg\Shell\Open\Command напиши "С:\MyProg.exe "%1"".
А при запуске программы проверяй, нет ли в параметрах имени файла, а если есть, то открой этот файл.


uses Registry;

procedure TForm1.FormCreate(Sender: TObject);
var
Reg: TRegistry;
FileName: string;
begin
Reg := nil;
try
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey("\.ext", true);
Reg.WriteString("", "MyProg");
Reg.CloseKey;
Reg.OpenKey("\MyProg", true);
Reg.WriteString("", "My document");
Reg.CloseKey;
Reg.OpenKey("\MyProg\Shell\Open\Command", true);
Reg.WriteString("", ParamStr(0) + " "%1"");
Reg.CloseKey;
Reg.OpenKey("\MyProg\DefaultIcon", true);
Reg.WriteString("", ParamStr(0) + ", 1");
Reg.CloseKey;
finally
if Assigned(Reg) then Reg.Destroy;
end;
if ParamCount > 0 then begin
FileName := ParamStr(1);
if FileExists(FileName)
then Memo1.Lines.LoadFromFile(FileName)
else ShowMessage(FileName + " не существует");
end;
end;


Spartak   (2003-04-21 07:14:00) [4]

Посмотри на http://delphibase.endimus.com/там точно есть


Intell   (2003-04-20 10:28:00) [5]

Больная тема - FAQ...


Kair   (2003-04-19 21:32:00) [6]

Программа должна сама уметь автоматически проигрывать при открытии.
А расширение связывается в реестре.
Может в FAQ про это есть.


Наверх

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