Лицензионный Виндус такой возможности (предустановку флеш-плеера), например, не дает.
Но все не так плохо, т.к. есть замечательные файлы-манифесты.
Т.е. задача запустить приложение с флешом в системе, где нет флеш-плеера (или он не той версии, что нужна), решается просто:
1) Рядом с приложением (в данном случае с .NET приложением на C#) кладем нужный нам флеш-плеер (файл типа, flash9.ocx)
2) Прописываем этот файл в манифест, что-то вроде
Код
<assemblyIdentity type="win32" name="start.exe" version="1.0.0.0"/>
<file name="Flash9.ocx">
<file name="Flash9.ocx">
3) Манифест можно оставить отдельным файлом рядом с приложением, либо внедрить в экзешник приложения (ресурс 24)
Теперь при запуске флеш-контрол использует не системный флеш-плеер, а свой собственный - локальный.
Одна загвоздка.
В .NET приложении образуются несколько файлов типа:
1) AxInterop.ShockwaveFlashObjects.dll
2) Interop.ShockwaveFlashObjects.dll
3) flash9.ocx
4) start.exe.manifest (если мы манифест не внедряли в экзешник)
Это вовсе не гуд.
Хотелось бы все эти dll и ocx внедрить в экзешник (в виде ресурсов).
Но тогда встает вопрос: как грузить из ресурсов, да еще при этом использовать манифест, чтобы флеш-контрол опять-таки использовал флеш-плеер загруженный из ресурсов экзешника?
Нашел намек на то, что в манифесте можно прописывать и ресурсы:
Код
<file name="res:///C:\\app.exe\\[id ресурса]"/>
Но у меня так не работает. Какой-то секрет есть, либо тонкость.
(либо такой возможности на самом деле нет - но было бы странно... либо я неправильно внедряю ocx в экзешник, либо неправильно пишу это в манифест - последнее скорее всего)
Если кто-то сильно рубит в теме манифестов или использования внедренных ресурсов - прошу помочь.
add:
Конструкция типа
Код
<file name="res:///C:\\app.exe\\[id ресурса]"/>
оказалась мифом...
Вопрос про возможности манифеста остается открытым, а проблема сокрытия ocx, dll и прочих swf решена пока системой защиты от копирования (все ресурсы собираются в один файл-библиотеку, которая зашифрована).