Как я могу загрузить SWF-файл из C # EmbeddedResource без предварительной записи в файл? - PullRequest
1 голос
/ 09 ноября 2009

Я использую элемент управления flash 10 activex для загрузки флэш-фильма в мою WinForm. К сожалению, это только путь. Я пытаюсь загрузить SWF-файл из потока, который я могу получить из EmbeddedResource, чтобы я мог встроить SWF-файл в свой exe-файл таким образом, чтобы A) мне не приходилось беспокоиться о путях и B) у меня нет Мой SWF так уязвим - проще для использования и развертывания.

Я знаю об использовании f-in-box , но я бы не хотел добавлять еще одну зависимость в мой проект. Есть ли способ загрузить SWF в базовый элемент управления ActiveX без использования пути?

Я использую C # и .Net 3.5sp1.

Ответы [ 2 ]

2 голосов
/ 14 ноября 2009

Это всегда путь file path? Или это может быть URL? Настроить временный локальный веб-сервер с использованием HttpListener (или аналогичного) достаточно просто, который возвращает файл в ответ на запрос http

Другая возможность - именованные каналы; Интересно, можете ли вы убедить элемент управления открыть именованный канал, как если бы это был файл? (в конце концов, они имеют логический путь к файлу). Я едва коснулся их, так что я не могу сказать 100%, будет ли это работать.

0 голосов
/ 14 ноября 2009

Я не знаю, поддерживает ли flash 10 протокол res для загрузки веб-контента из ресурса. Но я думаю, что контроль веб-браузера в Windows Forms и WPF его поддерживают.

Для создания нативного ресурса вам нужен редактор нативного ресурса. Visual C ++ имеет один. Вы можете использовать RC.exe в Windows SDK, чтобы скомпилировать его в файлы res перед установкой ссылки в вашей программе C #.

Обновление: Похоже, плагин flash для IE не поддерживает протокол res. встроить файл .swf в файл ресурсов и загрузить его с помощью параметра фильма не будет работать. Попробуйте встроить файл Flash в файл веб-архива (.mht) и добавить файл .mht к своему ресурсу.

...