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

Вниз

Как програмно открыть файл с заданным расширением(например .rm)?   Найти похожие ветки 

 
maxi   (2003-09-09 12:21) [0]

Проблема такая : как программо узнать путь к приложению, которое ответственно за файлы с данным расширением? Например мне необходимо открыть файл 1.avi из своей программы; У меня в системе зарегистрированы две проги открывающие этот файл: С:\1.exe и D:\TEMP\2.exe;
Искать самому в реестре путь к файлу - убожество, поскольку система сама уже по умолчанию открывает из проводника 1.exe с ключом 1.avi;
Хотелось бы услышать мнение профессионалов.


 
clickmaker   (2003-09-09 12:26) [1]

ShellExecute(Handle, "open", "c:\1.avi", nil, nil, SW_SHOWNORMAL)


 
maxi   (2003-09-09 12:35) [2]

Пробовал. Глухо как в танке.
А вот строка
ShellExecute(MyHandle,"open","explorer.exe c:\1.avi",nil,nil,SW_SHOWNORMAL) выполняется. Правда спрашивает кучу лишнего по пути : ей кажется что ассоциации с avi нет (но ведь проводник то открывает и ничего не спрашивает) и приентом запускает стандартный виндо-медиа плеер, хотя из проводника запускается совсем другой проигрыватель.

Что делать то ?


 
clickmaker   (2003-09-09 12:45) [3]

А в контекстном меню Проводника на этом файле какой пункт жирный?


 
maxi   (2003-09-09 13:13) [4]

У меня там выпадает Player.exe (на первом месте стоит) и WindowsMedia Player (на втором месте)


 
Рамиль   (2003-09-09 13:21) [5]


> ShellExecute(MyHandle,"open","explorer.exe c:\1.avi",nil,nil,SW_SHOWNORMAL)

А что значит MyHandle ?


 
maxi   (2003-09-09 13:23) [6]

MyHandle - переменная типа cardinal, или HWND , определяющая окно приложения.
Её можно брать из Apllication.Handle или любой формы Form1.Handle...


 
Рамиль   (2003-09-09 13:26) [7]

В догонку, работает даже текая конструкция, только что проверил
ShellExecute(Self.Handle, "open", "c:\Documents and Settings\Ramil\Мои документы\Мои видеозаписи\cue_ball_cat.avi",
nil, nil, SW_SHOWNORMAL);


 
clickmaker   (2003-09-09 13:38) [8]

Попробуй "open" убрать, поставь там nil


 
maxi   (2003-09-09 13:38) [9]

А у меня вызывается WindowsMediaPlayer. Хотя должно LPlay вызываться. (другой проигрыватель).

2ClickMaker : в контектном меню на первом месте и выделен жирным шрифтом LPlay. На втором месте идёт запись "Play with Media Player"


 
maxi   (2003-09-09 13:40) [10]

ClickMaker - ты просто чудо !!!!!!!! Уряяяяяяя, заработало!!!!.

Хотя в чём парадокс ?


 
clickmaker   (2003-09-09 13:45) [11]

Видимо в том, что действие open все-таки связано с Медиа Плеером, а действие по умолчанию, т.е. nil, с LPlay


 
maxi   (2003-09-09 13:46) [12]

Понял в чём проблем : "open" - The function opens the file specified by lpFile. The file can be an executable file or a document file. The file can be a folder to open.

The lpOperation parameter can be NULL. In that case, the function opens the file specified by lpFile.

Ключ OPEN требует обязательно выполняемого файла или документа. Если этот ключ не указывать - процедура передаёт вопрос об открытии файла самой операционной системе и уже та решает каким макаром его открывать... Благодарю всех за проявленную заботу и подсказки. Обязуюсь лучше хелпы читать... :о)


 
Anatoly Podgoretsky   (2003-09-09 14:38) [13]

maxi (09.09.03 13:46) [12]
Проблема наверно в том, что у тебя действие по умолчаниб не Open, а скажем "Проиграть", надо просто вызывать по другому.

ShellExecute( 0, nil,filepath,nil, nil, SW_SHOWNORMAL);



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

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

Наверх




Память: 0.47 MB
Время: 0.035 c
11-41127
Kladov
2003-02-18 16:51
2003.11.13
Про глюки тулбара.


14-42138
Igorek
2003-10-21 13:28
2003.11.13
Покритикуйте пожалуйста мой второй сайт


7-42180
AVGVI
2003-08-13 20:48
2003.11.13
Управление учетными записями в W2K


11-41121
LITTEL[MF]
2003-02-16 05:00
2003.11.13
PStrList >Помоему он не доработан или там ошибка.


1-41468
Sodom
2003-11-04 15:25
2003.11.13
Как нарисовать в ScrollBox?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский