Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 28.05.2008, 09:52
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 11  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
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 повторить такое, думаю, реально.


Последний раз редактировалось alexcon314; 28.05.2008 в 09:58.
Создать новую тему   Часовой пояс GMT +4, время: 12:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:23.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.