Главная страница
    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.028 c
4-1076521958
JustAnotherDummy
2004-02-11 20:52
2004.04.18
RichEdit на WinAPI


1-1080732957
Borealis
2004-03-31 15:35
2004.04.18
MDIChild в DLL


6-1076399932
Роман
2004-02-10 10:58
2004.04.18
Прикреплённые файлы к письму


14-1079942213
Morok
2004-03-22 10:56
2004.04.18
папка "con"


14-1080270229
an-na2002
2004-03-26 06:03
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский