Для многих программистов это тривиальная задача но думаю для начинающих этот топик будет полезен.
Наша задача запустить приложение написанное на IronPython использующее Adobe Flash Player ActiveX c применением среды SharpDevelop.
Понадобится: SharpDevelop и любая версия .Net Framework SDK.
Нам нужно создать компонент для палитры компонентов SharpDevelop. Для этого его надо сгенерировать его с помощью утилиты aximp.exe входящей в состав Net Framework SDK. Команда для генерации довольно таки проста
aximp.exe [имя файла ActiveX]
при этом будет сгенерированно [имякласса]s.dll Ax[имякласса]s.dll. aximp.exe обычно расположена в папке C:\Program files\Microsoft.NET\SDK\*версия*\Bin\ а файл ActiveX %windir%\system32\Macromed\Flash\.
Теперь запускаем SharpDevelop и начинаем новый проект "File">"New">"Solution…", в открывшемся окне выбираем "Python">"Windows Application" указываем имя проекта и нажимаем "Create".
Переходим в режим дизайнера форм нажав кнопку "Design". Переходим к панели "Tools" и вызываем контекстное меню панели, выбираем пункт "Configure Sidebar".
В открывшемся окне добавим новую категорию для нового компонента, нажав кнопку "New", и назовем его "ActiveX". После выберем нашу новую категорию и жмем кнопку "Add Components".
В новом окне переходим во вкладку "Custom" и указываем имя на файл сгенерированный утилитой aximp.exe а именно на тот где имя файла начинается с Ax. Жмем "ok" и еше раз "ok".
Теперь бросаем в окно программы компонент "AxShockwaveFlashObjects" из палитры компонентов и устанавливаем свойство "Movie" объекта равным имени файла нашей флешки. Жмем кнопку "Run". Тут у нас может поджидать ошибка
IronPython.Runtime.UnboundNameException: global name 'AxShockwaveFlashObjects' is not defined at Caller.Call at BuiltinFunctionCaller.Call5 at System.Dynamic.UpdateDelegates.UpdateAndExecute7 at IronPython.Runtime.Importer.Import at IronPython.Runtime.Operations.PythonOps.InitializeModule at PythonMain.Main
для его устранения нужно добавить в исходный код программы строку.
import AxShockwaveFlashObjects
снова жмем кнопку "Run" и видим результат
С таким же успехом можно добавить и использовать в среде SharpDevelop любой компонент ActiveX.





