![]() |
Возможено ли проигрование Flash без установленного ActiveX?
Здравствуйте, такой вопрос.
Есть Flash приложение (swf), его поместил в exe, с помошью Borland Developer Studio 2006, используя компонент SmartFlash. Получилась exe программа из двух частей swf и exe между собой они обмениваются fs-командами и переменными, организуя нужную работу ) но если запустить этот exe где не был установлен Install_Flash_Player_9_ActiveX.msi то все мои старания не видны на экране до тех пор пока не будет установлен ActiveX.. Может есть способы таскать с собой все нужные *.ocx и библиотеки в папке программы ? Заранее спасибо. :drinks: |
А вариант swf компильнуть как exe не проще?
|
aksios - мэн, или я, или ты не вник в тему...
exe уже есть, написан на делфи, это приложение коннектится к серверам, содержит Гис-движок, а swf это только интерфес который общается с программой написанной на делфи, сам swf находится на форме как SmartFlash(ActiveX) компонент... Если swf компильнуть как exe.. то потом я этот компиленный swf в exe, не смогу поместить в проект делфи, (ещё один exe).. по моему это вообще не выход.. ещё такой вопрос по теме, может кто запускал на машине без установленного ActiveX, те exe ..шники они точно работают? |
Точно работают.
Что то мне подсказывает, что в дельфях надо другой компонент задействовать. |
Дело ещё в том что вот такие: ехе-шники точно не работают.
www.citforum.ru/internet/flash/flash_delphttphi/ может кто знает как делать подобное и чтоб работало? :umnik2: |
http://www.f-in-box.com/
возможно есть аналоги, но я не слышал о других. ... а ваша ссылка непонятная.. чего там, где -не ясно |
ссылку поправил, там описание стандартного компонента для делфи
я использовал такой, - http://www.almdev.com/ по сути это всё то же что и f-in-box... сейчас качаю проверю будет ли работать он без установленного ActiveX элемента. |
А установить его принудительно?
|
с удовольствием!!!
только как это делать? вот что знаю: есть дириктория %winroot%\system32\Macromed\Flash обычно там лежит файл Flash9c.ocx (у меня оказался только FlDbg9e.ocx))) он отвечает за воспроизведение flash в системе. помню видел скин к миранде, который использовал flash-анимацию и хранил у себя в папке этот *.ocx только никаких описаний как его использовать или подключать к системе, так же как и *.reg файлов, не нашёл. |
Цитата:
А еще можно взять за 300 долларов чужое решение http://flash-ocx.qarchive.org/. По сути flash.ocx можно использовать напрямую (не внося записей в реестр, что требуется в решении приведенном выше), так что глубокое копание в технологии COM должно помочь... Сишникам, во всяком случае... Зы... Простым копи пастом кода не обойтись (я уже исследовал когда-то этот вопрос). |
|
Уже купил SmartFlash VCL от almdev.com нашёл много странных вещей, не передавались некоторые кнопки с клавиатуры, индикатор курсора ввода исчез раз навсегда.. использовать простой ActiveX было даже лучше, но на компах без нормальной видеокарты не работала прозрачность.. в SmartFlash при включении их фирменной прозрачности, переставали работать все кнопки, но обычная прозрачность работала на любых машинах.
наверно всёж буду выполнять проверку и регистрировать ocx. |
Можно ли ВНЕДРИТЬ флеш-плеер в дельфи-оболочку? Т.е. не устанавливать флеш-плеер в ОС (что возможно лишь под правами админа и требует наличия лицензии от адоба), а именно внедрить (наподобие цинковского или стандартного проектора) - в этом случае лицензии от адоба и админские права не требуются.
|
|
Ага. http://www.f-in-box.com/delphi/help/...om_stream.html
Нашел. Только пока с лицензией не разобрался еще. add: поговорил с теми, кто использовал бесплатную демо-версию TFlashPlayerControl - говорят, сильно тормозит из-за обилия различных перехватчиков событий, которые там заложены. Может это только в демке? Кто-нибудь использовал полную платную версию? Тормозит или нет по сравнению с использованием ФП из ОС? add2: есть идея использовать манифесты, где будет прописан путь к файлу c ActiveX-компонентом (флеш-плеером). естественно не стандартным из ОС, а откуда мне нужно. Кто что об этом думает? |
Вложений: 1
Да это тот самый способ за 300 бачинских чтоб ocx был в комплекте...
С манифестами идея не ясна, мне кажется я встречал программы использующие свой ocx, не трогая системный.. по моему это реально, но я незнаю как. у меня платная версия )) за 90 бачинских Да дема тормозила, но это в основном из за того что там постоянно лепится надпись demo version... после того как её убрали вроде нормально всё. А вообщем сам попробуй. |
>>есть идея использовать манифесты...
Идея мне кажется плодотворной. Стоит ей заняться. Только терзают меня сомнения, что всего-то и прописать путь к осх в манифесте - слишком просто. Более того, есть подозрение, что манифестом следует снабжать сам осх в первую очередь... http://helpcentral.componentone.com/...s/t/73757.aspx - похожий вопрос. Еще есть мысль. Существует технология portable-приложений. Возможно решение есть и в этом направлении. xdoom, а почему вы все-таки отказались от принудительной установки флэш-контрола? |
Цитата:
у меня не получилось поставить через regsvr32.. иногда даже ручной запуск Install_Flash_Player_ActiveX.msi не помогает зарегистрировать ocx в системе, особенно ели ковырялись с ocx руками или ставили кучу разного софта.. вообще часто бывает такой глюк что Install_Flash_Player_ActiveX.msi выдаёт ошибку при установке.. и если удаляешь вручную все ocx и установка проходит нормально, проигрыватель всё равно не регистрируется и swf не проигрывается ... ...и неичего не помогает кромее FlashUtil9c.exe 200 килобайтное приложение само проверит и скачает с сети последнею версию проигрывателя и корректно установит не смотря не на что.. иными словами я не сумел грамотно реализовать принудительную установку )) ограничился тем что вложил FlashUtil9c.exe в инсталлятор и дал пользователю текстовое указание, мол если не видно ничего запустите эту утилиту. |
xdoom, спасибо за исходники с SmartFlash VCL (almdev.com), но это немного не то о чем я спрашивал.
мне интересно как работает TFlashPlayerControl (f-in-box.com) в полной версии, а не в демо, где он тормозит. SmartFlash VCL все же не является альтернативой ФП из ОС, а насколько я понимаю, лишь дополняет этот ФП (т.е. без установленного ФП в ОС он работать не будет). А у TFlashPlayerControl совсем другой принцип работы. Он перехватывает обращения к ФП в ОС и использует свой ФП. Т.е. может работать как вообще без установленного в ОС ФП, так и с установленным, но не правильной версии. Вообще установка ФП в ОС не подходит по многим причинам: у пользователя может не быть админских прав, а допустим, запустить приложение ему надо. На установку ФП нужна лицензия от адоба... |
chingachgook, ваша идея с манифестами оказалась действительно плодотворной. РЕГАРДСЫ. Здесь рассказывается о том как собрать приложение с COM, работающее без его регистрации в системе. Привожу так же небольшой отчет о том как я все это реализовал.
Первое, что нужно сделать - убедиться, что на машине, где вы собираете приложение установлен FlashPlayer. При чем обязательно нужно его зарегистрировать в системе в командной строке: cd <SystemDir>\system32\Macromed regsvr32 FlashХХ.ocx Инсталлятор от адоба почему-то глючит. Обязательно поместить FlashХХ.ocx в указанную папку Macromed. Создаем Windows C# проект в MSVC 2005. На форму Form1.cs [Design mode] помещаем флэш-компонент. Для этого в тулбоксе на вкладке Components жмем правой кнопкой и Chose Item->COM->ShockwaveFlashObject, затем перетаскиваем его на форму. В окне свойств компонента указываем в поле Movie путь до загружаемого в него swf, если хочется, ставим EmbedMovie=True. Компилим. Запускаем. Работает. Для чистоты эксперимента делаем унинсталл плеера, и обязательно удаляем FlashXX.ocx. Запускаем ехе, любуемся окном с сообщением об ошибке - НЕ РАБОТАЕТ! Ставим плеер обратно, регим его в системе. Только после этого (!) открываем наш проект MS VС (иначе заглючит design mode]. Идем в Solution Explorer, открываем наш проект, находим папочку Reference, а в ней (внимание!) два файла: AxShockwaveFlashObject и ShockwaveFlashObject. Кликаем на любом из них и в окне его свойств ставим Isolated=true (вот оно!). То же со вторым. Компилим. Закрываем MS VC. Сносим плеер, не забывая удалить .ocx. Запускаем. РАБОТАЕТ! Вообще, сносить плеер с вычищением реестра и прочими предосторожностями не обязательно. Достаточно убрать из виду FlashXX.ocx, переместив его в другую папку, например. Ну тут дело вкуса. Лучше, конечно, иметь под рукой чистую машину для тестов. При компиляции с Isolated=true рядом с ехе появятся вдруг откуда ни возьмись FlashXX.ocx и, собственно, сам манифест. Это компилятор постарался. Наличие этих файлов по-соседству с ехе, сами понимаете, гвоздь программы. Без любого из них ехе не запустится. Кроме них еще два важных файла AxInterop.ShockwaveFlashObjects.dll и Interop.ShockwaveFlashObjects.dll. Они тоже генерируются автоматически при вставке компонента на форму. Пользоваться таким способом сборки приложений надо осмотрительно. Можно нарваться на проблемы с лицензированием внедряемого контрола. Кроме того, вся эта канитель будет работать только под Windows не ниже XP PRO SP2. При этом в системе должен быть установлен .NET Framework 2.0. Цинк, кстати работает и под 98-мым. Скомпилированный проект выложил здесь. (~1.5Mb) Работает без установленного плеера. Внедряется 9-ый плеер. Мув зашит в ехе. http://mdm-zinc.narod.ru/CS/CSF.zip В Delphi повторить такое, думаю, реально. |
Цитата:
Но идея пока далека от плодотворности. Аналога TFlashPlayerControl пока не выходит. Ведь установить ФП из дельфи-приложения можно и сразу в ОС. Но для этого надо получить лицезию от Адоба (и нарваться на ограничения). А ограничений нет только если ФП внедрен внутрь ран-тайма (наподобие Цинка или проектора самих адобовцев). |
Я вас не понимаю. Вы хотите, извиняюсь, заюзать "просто так" плеер адоба, внедрив его в какой-то мифический рантайм? Код плеера в любом случае защищен. От меня ускользает смысл ваших изысканий в этом вопросе.
Что касается манифеста. Вы противоречите самому себе. Цитата:
Согласен, это решение не 100%. Но по вашим запросам нужно писать свой плеер, не меньше. |
Цитата:
Цитата:
Цитата:
Но этот вопрос для меня второстепенный. Цитата:
|
Цитата:
Извините за может быть излишнюю категоричность в тоне. Ничего личного :) |
Цитата:
Но! Далее, уже продавая свою разработку, разработчик ничего не отчисляет ни мдм, ни адобу. Никаких лицензий у них не просит, соответственно не связан ограничениями (единственно, что требуется - указать, что декомпилировать нехорошо) Цитата:
Цитата:
|
Значтит, если верить юристам, у создателей оболочек для флэша полностью развязаны руки?. Тем лучше:).
Ок. Будем считать вопрос о лицензиях исчерпанным. :) Юристам, конечно, виднее. Тогда такой вариант: внедрить в ресурсы .ехе файл плеера .осх. Формально на диске плеера не будет. (фактически будет, конечно, но как бы и не будет. Не в воздухе же его хранить в конце концов:)). ... Меня смущает несколько обстоятельств. 1. Продавать ШТАТНЫЙ флэш-прожектор, который и задумывался как раз для девелопера, которому вздумается продавать стандалоне и продавать ПЛЕЕР В НЕШТАТНОЙ ОБОЛОЧКЕ - две большие разницы. 2. С точки зрения программиста плеер отдельным файлом и плеер в ресурсах ехе (dll) - одно и тоже. 3. Где-то я читал, что плеер можно юзать без ограничений, если вы его юзаете ДЛЯ ЗАПУСКА SWF ИЗ ИНТЕРНЕТА. Вкупе все это заставляет задуматься. |
Цитата:
Цитата:
С другой стороны, посмотрите на сайте мдм - разве они говорят, что вы, создав и продавая свое цинк-приложение, должны получать на это лицензию от адоба или от мдм? А ведь Цинк - это нештатная оболочка к ФП. Цитата:
add: При запуске приложения по сети (экзешник и все с ним - на другом компе) манифест не удается заставить работать (не хочет брать ФП с другого компа). Работает только на локальном компе. :( |
Цитата:
Установлен ли на компе, где запускете .NET Framework? Вообще, при публикации проекта C# требуется указать некоторые параметры секурности. Видимо, я публиковал с параметрами по умолчанию и их не хватает. Наверно это не очень принципиально. В том смысле, что требуется все равно какое-то другое решение. ... Не смог удержаться. И все-таки адоб надо оповестить о ваших планах на плеер. :) Добавлено. Да, секурность превыше всего. При нормальной публикации проекта создается инсталлятор (нет, не флэшплеера!), который затаскивает на комп все необходимое и, собственно, все начинает работать. При чем все необходимое ложится в профиль юзера, и плеер в том числе. Установку можно запустить не только по локальной сети, но и с веб-сервера. Правда урл деплоймент-ресурса прошивается при публикации и его изменение повлечет пересборку проекта. ... Забыл сказать, вебсервер должен быть IIS. |
Еще три обстоятельства.
1. В манифесте можно менять имя файла плеера. Наприме, оригинал flash9f.ocx можно переименовать в blabla.dll и поменять соответственно название в манифесте. Ибо важен формат файла, а не название. Код:
<assemblyIdentity name="CSF.exe" version="1.0.0.0" type="win32" />Код:
<assemblyIdentity name="CSF.exe" version="1.0.0.0" type="win32" />3. Сам осх можно грузить не локально, а по сети. Сам ехе с манифестом должен лежать на компе пользователя. А осх может лежать где угодно в сети (в локальной). Однако, сетевой ресурс должно мапировать как сетевой диск. С обычной шары не грузится. Код:
<assemblyIdentity name="CSF.exe" version="1.0.0.0" type="win32" />И, наверно, четвертое: Есть вероятность, что можно грузить осх из ресурсов самого ехе. Код:
<assemblyIdentity name="CSF.exe" version="1.0.0.0" type="win32" /> |
Тоже, только что заметил ваши сообщения, alexcon314 :)
Цитата:
Я все же не понял, удалось ли вам запустить приложение по сети, если все (экзешник, подгружаемые файлы swf и пр.) находится на другом компе? |
Цитата:
Чтобы по сети работало, как вы говорите, нужно поковырять настройки публикации C#-проекта и конфиги сборки. Там много разных фич, сразу не разобраться. Чем больше я знакомлюсь с .NET, тем больше оно мне нравится. По-сути - такая же VM, как фо флэше. Компилятор встроенный... редактор байт-кода есть... туча вариантов архитектуры приложений ... Слышал, что портируют на другие платформы.. Бросай Delphi :D! |
Упорно подолбавшись, я таки смог захостить флэш-контрол без регистрации и манифестов и NET. Использовал С++ и ATL. Компилил в MS VC++ Express 2008 (ATL-фреймворк пришлось вручную затащить)
Как грузить из ресурсов Еще. И еще. проверил - под вистой тоже работает. пример (~2M), с внедренным 10-ым плеером и мувиком в ресурсах. "Возможно ли проигрование Flash без установленного ActiveX?" - Легко :D. |
:eek: Вот это да...
alexcon314, а как бы вы сами самым простым способом бы определили бы, что это все же ФП? |
Чего?
Да, кстати, http://www.adobe.com/products/eula/t...e_license.html (http://www.flasher.ru/forum/showpost...0&postcount=22) я чего-то не очень въехал в суть. Как ты сам склонен трактовать данный документ? |
Это я про внедренный ресурс (ФП) в приложение. Какая последовательность действий, чтобы определить - что это сделано на флеше? (пункт первый - правый клик :) )
Про лицензию я думаю так. Мне было интересно, что по этому поводу говорят mdm-овцы. http://www.multidmedia.com/support/f...on=detail&id=1 А они на сам продукт, собранный Цинком лицензии не требуют. А по поводу того, что в Цинк-проект будет встроен ФП они отсылают к Macromedia Flash Run-Time Distribution License. Я, конечно, не юрист и не носитель языка, но, вроде, смысл там простой: run-time является неотъемлемой частью продукта и заключать на него лицензию не требуется, кроме как в соглашении на свой продукт запретить его декомпиляцию. |
Хм.. но это вовсе не означает, что сам разработчик может делать с этим рантаймом все что угодно. Юзать-юзай, хочешь в свою прогу вставить и продавать - гуд. Но вот отключать меню, или там прочие фичи.. зыбко как-то все это..
Ну да ладно... рано или поздно найдутся ответы на все вопросы. Как определить, что на флэше сделано? Ресурсы вынуть достаточно легко. То, что в ресах свф ... не мне вас учить, как распознать этот формат. Идентифицировать код в ресах, как код плеера - тоже не проблема. Ну, а чисто визуально - пожалуй, придраться трудно, если убрать правый клик или кастомное меню на него повесить. Есть еще одно обстоятельство - мне не известны, например, программы, воспроизводящие свф, кроме как адобовский плеер. Одно наличие свф в ресах уже признак. |
Цитата:
|
ок. не буду спорить.
|
Хостинг контрола без регистрации и админских прав юзера при запуске проги вполне возможен. Возможно даже грузить контрол из ресов ехе и свф брать из ресов. Т.е. создать подобие автономного проектора более чем реально. Даже без ATL и MFC, на чистом С (много кода - но реально). Приплести Qt - и даже кроссплатформу можно реализовать.
Однако, лицензионные соглашения о распространении и использовании плеера, а так же рантайма от адоба вообще, все же требуют, чтобы вы сообщили адобу о вашем проекте и получили индульгенцию на такое его использование. Это лично моя интерпретация соглашений, возможно, я, не будучи специалистом в области юриспруденции, ошибаюсь, и все проще. Добавлю, что вопрос с лицензией - животрепещющий,не мало народа реализовали хостинг плеера, и даже юзают его в своих действующих проектах, знаю, ибо копал, но никто не знает, законно это или нет. Сам адоб предпочитает ограничиться следующей формулировкой: Цитата:
И,собственно, http://www.adobe.com/ru/products/cli...agreement.html Другими словами, законно - это когда вы юзаете плеер, при этом даете адобу об этом знать и получили от него официальное разрешение. Что там делает mdm - это их проблемы. |
Но не окажется ли факт использования цинка проблемой для всех тех, кто преобразовывает с его помощью swf в exe? То есть, при самой жесткой трактовке лицензии, будет ли создание приложений с использованием программ, подобных цинку, считаться противозаконным деянием? И вообще, интересно было бы узнать, какую цель преследуют разработчики, пытаясь избавиться от адобовских меню: эстетическую, улучшение usability, или какую-то другую? Что будет считаться более законным (или противозаконным) - создание exe на основе swf с одновременным удалением всякого упоминания о Adobe (неизвестно, на чем сделано, и нет претензий) или, к примеру, использование того же Цинка с отключением правой кнопки, но без блокировки AppKey?
|
| Часовой пояс GMT +4, время: 06:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.