Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

ExecuteWait ?   Найти похожие ветки 

 
Юрий Ж.   (2003-09-05 14:34) [0]

Подскажите пожалуйста как с помощью ExecuteWait запустить файл Film.avi.
Пишу:
ExecuteWait("Film.avi","","",sw_show,INFINITE,p), где р:pointer;
Почему-то не работает.


 
Кладов   (2003-09-05 16:41) [1]

 if not ExecuteWait("d:\Program files\Windows Media Player\mplayer2.exe", "E:\Video\Clips\ТАТУ - Простые движения.wmv","",sw_show,INFINITE,nil)
 then ShowMessage( "Error" + Int2Str( GetLastError ) + " " + SysErrorMessage( 193 ) );


 
Юрий Ж.   (2003-09-05 19:14) [2]

Мне заранее не известно с каким плеером ассоциирован тип файлов *.avi, а проигрывать надо плеером по умолчанию.

Если так то есть другой вопрос(хотя возможно больше к WinAPI):
Как получить программу ассоциированную с данным типом файлов?
Заранее благодарен!


 
Кладов   (2003-09-05 21:40) [3]

Задачка подробно описана в MSDN, Shell Programmers Guide. Смотрим на HKEY_CLASSES_ROOT\object_name\Shell\verb
(object_name здесь = mplayer2.exe, verb = Open или Play), там еще подключ Command, в нем значение Default содержит полную команду. Немного сложнее определить, что нужен именно mplayer2.exe или еще какое приложение. Просто посмотрите в реестре на HKEY_CLASSES_ROOT\.avi, да и на соседние тоже. У меня, например, там \OpenWithList\mplayer2.exe, а рядом нечто совсем другое.

Есть более легкий путь: использовать ShellExecuteEx, затем ждать, когда закончится процесс, ID запущенного процесса возвращается, если запуск произошел успешно.


 
SPeller ©   (2003-09-06 01:21) [4]


> проигрывать надо плеером по умолчанию.

Использовать ShellExecuteXX() с указанием только файла, который надо открыть, и он откроется программой по умолчанию.


> Как получить программу ассоциированную с данным типом файлов?

Читаем значение по умолчанию из ключа HKEY_CLASSES_ROOT\.ext, где ext - это наше расширение, и получаем значение вроде такого: extfile. Затем в списке подключей ключа HKCR\extfile\shell получаем список возможных действий с файлом (у меня для avi это open и play). А в значении по умолчанию ключа HKCR\extfile\shell получаем имя подключа (или имя команды) по умолчанию. У меня это play. Затем в значении по умолчанию ключа HKCR\extfile\shell\play\command получаем сроку, которой запускается программа, которой в ком строке передаётся имя открываемого файла и другие опциональные ключи. У меня эта строка выглядит так:
"C:\PROGRA~1\WINDOW~1\wmplayer.exe"  /Play "%L"


 
SPeller ©   (2003-09-06 01:22) [5]

И ещё, может, стОит указывать на просто ExecuteWait("Film.avi","","",sw_show,INFINITE,p), а ExecuteWait("C:\Path_To_File\Film.avi","","",sw_show,INFINITE,p) ?



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
11-1062275252
Serega123
2003-08-31 00:27
2004.04.18
Как можно убрать кнопку с панели задач?


1-1080891059
wa-ckum-gg
2004-04-02 11:30
2004.04.18
RichEdit/RxRichEdit верхний/нижний индекс


1-1081055905
LiNkER
2004-04-04 09:18
2004.04.18
Помогите с RAVE Reports


7-1076352679
SAmoilov
2004-02-09 21:51
2004.04.18
Обращение к дисководу и CD-ROM


14-1080148474
micc
2004-03-24 20:14
2004.04.18
TCanvas и ScanLine