![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
listener
|
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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|