Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "KOL";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.026 c
14-1079741558
Паниковский
2004-03-20 03:12
2004.04.18
Третья мировая война


9-1061772582
Tanker
2003-08-25 04:49
2004.04.18
Вопрос по массивам!!


6-1076345884
Budy
2004-02-09 19:58
2004.04.18
Проверка соединений


14-1080142383
Да никто
2004-03-24 18:33
2004.04.18
Книга рекордов Гинесса


1-1080433010
Shoosema
2004-03-28 04:16
2004.04.18
Переключение между формами.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский