Форум: "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