Отправляет email-рассылки с помощью сервиса Sendsay

[prg] c#: Запуск файлов на сервере из программы на локальном компьютере

Всем привет,

есть папки на сервере, содержащие разные файлы: архивы, фото, видео, аудио,
текстовые, исполняемые и т.д.

Необходимо запускать их программами по умолчанию.

Если я пытаюсь запустить, например, аудио-файл таким образом:

System.Diagnostics.Process.Start("http://mysite.com/myfiles/audio.mp3");

то открывается Internet Explorer и предлогает либо скачать, либо открыть.
Мне же нужно, чтобы файл сразу запускался медиаплеером.

К сожалению, Google не помог :-(. Может вы поможете :-)

Заранее всем спасибо

С уважением

Владимир

Ответить   vkon@f*****.de Wed, 28 Jun 2017 10:56:40 +0200 (#3503491)

 

Ответы:

Здравствуйте.

Теоретически, нужно определить какая программа ассоциирована с данным типом
файлов и передать ей ссылку на него.
Поиск ассоциированного приложения реализуется с помощью win32api функции
FindExecutable:
https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb776419(v=vs.85).aspx
Прежде, чем использовать эту функцию в c#, её нужно импортировать:
https://stackoverflow.com/questions/9540051/is-an-application-associated-with-a-given-extension/9540278#9540278

С уважением, Константин.

Ответить   Wed, 28 Jun 2017 17:27:25 +0300 (#3503560)

 

Здравствуйте Константин,
Спасибо за подсказку и ссылки. Посмотрю в этом направлении.
С уважением
Владимир

Ответить   vkon@f*****.de Wed, 28 Jun 2017 19:23:10 +0200 (#3503600)

 

Здравствуйте, vkon <vk***@f*****.de>.

* Исходное сообщение * v> Спасибо за подсказку и ссылки. Посмотрю в этом направлении.

Господа, благодарности отправляйте в личную почту. В лист -
только информативный текст.

Ответить   Wed, 28 Jun 2017 23:59:38 +0300 (#3503623)

 

Приветствую всех!

типом

Есть, как минимум, две особенности у такого подхода. Во-первых, это не путь
к файлу, а url, поэтому прежде всего проверяется ассоциация протокола (т.е.
http://). Наиболее вероятно, что этот протокол ассоциирован с браузером по
умолчанию.
А уже браузер, получив информацию от http-сервера о типе передаваемых
данных, решает, что делать с файлом (плюс настройки пользователя). Вторая
особенность: не все программы поддерживают работу с url в качестве
параметра, поэтому, чтобы гарантировать работоспособность, файл можно
загрузить на локальную машину в каталог временных файлов и работать уже с
ним.
Все нужное для этого есть в .Net .

Успехов. Анатолий.

Ответить   "i_chay" Wed, 28 Jun 2017 23:30:26 +0300 (#3503614)

 

Здравствуйте,
<Есть, как минимум, две особенности у такого подхода. Во-первых, это не
путь к файлу, а url, поэтому прежде всего проверяется >ассоциация протокола
(т.е.

умолчанию.

данных, решает, что делать с файлом (плюс настройки >пользователя). Вторая

параметра, поэтому, чтобы гарантировать работоспособность, >файл можно
загрузить на локальную машину в каталог временных файлов и работать уже с
ним.
О загрузке файлов я подумывал, но среди прочих файлов есть, например, видео
от 700 Mb и выше и поэтому загрузка подобных фалов будет занимать и место и
время.

С уважением
Владимир

Ответить   vkon@f*****.de Thu, 29 Jun 2017 10:03:05 +0200 (#3503690)

 

Приветствую всех!

видео

и

Если вы получаете файл с http-сервера, то так или иначе вам придётся
загрузить весь файл и это не зависит от того, чем вы пользуетесь --
браузером, медиаплеером или собственной программой.
Некоторые программы, которые принимают http-ссылку в качестве параметра,
обрабатывают полученные данные сами, например, воспроизводят видео. Это
позволяет таким приложениям не закачивать сразу весь файл, а делать это
частями по мере воспроизведения, предварительно создав запас данных на
ближайшие пару секунд просмотра. И тут ещё важную роль имеет формат файла.
Однако ничто вам не мешает в своем приложении сделать подобный механизм --
качайте данные в фоне и дописывайте их в некоторый файл, на который
параллельно натравливаете локальное приложение. Активность этого приложения
отслеживаете по наличию его процесса. Если процесса нет, то прекращает
загрузку и удаляете все закаченное.
Ещё раз главная мысль: не все приложения принимают url в качестве параметра,
поэтому вам имеет смысл учесть эту особенность, А как вы её обойдёте -- ваше
дело.

Успехов. Анатолий.

Ответить   "i_chay" Thu, 29 Jun 2017 14:54:14 +0300 (#3503725)