Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 00:44   #1
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Вопрос Запуск программы по двойному клику на файл!

!Здравствуйте!


У меня есть MP3 файл, мне нужно сделать чтобы при двойном клике на него вместо " Media Player Classic " он воспроизводился с помощью плеера который написал я!

Подскажите пожалуйста как это реализовать!

Заранее очень благодарен!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 03.12.2009, 00:48   #2
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

С помощью програмки для просмотра\редактирования системного реестра, просмотри первую ветку, там должны быть привязки программ
к расширению.
Ищи - OpenWithList для интересующих типов.
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 03.12.2009 в 00:51.
HellMercenariess вне форума Ответить с цитированием
Старый 03.12.2009, 01:12   #3
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
По умолчанию

А может кто код выложит?
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 03.12.2009, 01:33   #4
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Цитата:
Сообщение от SoftKoc Посмотреть сообщение
А может кто код выложит?
Да, еще забыл сказать, сначала надо привязать тип файлов в реестре,
а потом переделать свою прогу, добавив изъятие файла или параметра.
Делаеться это при запуске программы, в обработчике OnCreate:

Код:
if  (ParamCount>0) then  
if FileExists(ParamStr(1)) then
Mediaplayer1.fileName:=ParamStr(1);
MediaPlayer1.Open;
MediaPlayer1.play;
Но это отдельная тема, уже есть на форуме несколько раз.
С одним файлом легко, а вот если много файлов за раз добавить в список, там действительно нужно готовое решение(с блокировкой повторного запуска программы и кучей обработчиков).
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 03.12.2009 в 01:36.
HellMercenariess вне форума Ответить с цитированием
Старый 03.12.2009, 09:14   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вот вам привязка по расширению:
Код:
//регистрация-
procedure RegisterFileType(ext:String;fileName:String;ico:boolean);
var rg:TRegistry;
begin
 Delete(ext,1,1);
 //
 rg:=TRegistry.Create;
 rg.RootKey:=$80000000;//HKEY_CLASSES_ROOT;
 rg.OpenKey('.'+ext,True);
 rg.WriteString('',ext+'file');
 rg.CloseKey;

 //ассоциация с иконкой-
 if ico then begin
  rg.CreateKey(ext+'file');
  rg.OpenKey(ext+'file\DefaultIcon',True);
  rg.WriteString('',FileName+',0');
  rg.CloseKey;end;
 //
 rg.OpenKey(ext+'file\shell\open\command',True);
 rg.WriteString('',FileName+' "%1"');
 rg.CloseKey;
 rg.OpenKey(ext+'file\shell\play\command',True);
 rg.WriteString('',FileName+' "%L"');
 rg.CloseKey;
 //
 rg.Free
end;
использование...
Код:
RegisterFileType('.rmp',Application.ExeName,false);
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.12.2009, 23:39   #6
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Вопрос

Цитата:
Сообщение от raxp Посмотреть сообщение
вот вам привязка по расширению:
Код:
//регистрация-
procedure RegisterFileType(ext:String;fileName:String;ico:boolean);
var rg:TRegistry;
begin
 Delete(ext,1,1);
 //
 rg:=TRegistry.Create;
 rg.RootKey:=$80000000;//HKEY_CLASSES_ROOT;
 rg.OpenKey('.'+ext,True);
 rg.WriteString('',ext+'file');
 rg.CloseKey;

 //ассоциация с иконкой-
 if ico then begin
  rg.CreateKey(ext+'file');
  rg.OpenKey(ext+'file\DefaultIcon',True);
  rg.WriteString('',FileName+',0');
  rg.CloseKey;end;
 //
 rg.OpenKey(ext+'file\shell\open\command',True);
 rg.WriteString('',FileName+' "%1"');
 rg.CloseKey;
 rg.OpenKey(ext+'file\shell\play\command',True);
 rg.WriteString('',FileName+' "%L"');
 rg.CloseKey;
 //
 rg.Free
end;
использование...
Код:
RegisterFileType('.rmp',Application.ExeName,false);
Это в своей проге писать? Или делать отельную для регистрации в Register?
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 04.12.2009, 00:00   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Это в своей проге писать? Или делать отельную для регистрации в Register?
это как вы пожелаете... но обычно регистрация расширений есть внутри каждого уважающего себя плеера... light alloy, mplayer classic, winamp и т.п.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 04.12.2009, 00:20   #8
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
По умолчанию

Только насколько я понимаю это делается только в том случае если по умолчанию стоит другая программа!?
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 04.12.2009, 00:31   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

это делается по-желанию пользователя... зайдите например в настройки LA, типы файлов или winamp - конфигурация-настройки-связи и вы это увидите наглядно.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 04.12.2009, 01:10   #10
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
По умолчанию

Смотрел, тут все понятно!
Если у вас есть пример программки такой, можно посмотреть!
Именно с этим кодом!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности

Последний раз редактировалось SoftKoc; 04.12.2009 в 03:16.
SoftKoc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск программы WinWord по клику кнопки lalilulelo Помощь студентам 3 03.06.2009 17:41
Запуск программы Vladya Помощь студентам 4 17.11.2008 11:38
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33
Как выпонить действия по двойному слику на созданной таблице Tiolic Общие вопросы Delphi 2 21.06.2007 09:53
Запуск программы Egych Общие вопросы Delphi 4 04.05.2007 09:46