AkelPad и Automation

Russian main discussion
  • Author
  • Message
Offline
Posts: 8
Joined: Fri Sep 30, 2011 2:07 pm

AkelPad и Automation

Post by Omega »

Попытался использовать AkelPad через Automation из MS Access и ничего не получается :( Это вообще реально? Если да - ткните, пожалуйста, где можно об этом почитать.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Omega, интересно, а что именно не получается? И меня всё получается.

Offline
Posts: 8
Joined: Fri Sep 30, 2011 2:07 pm

Post by Omega »

FeyFre, ну я бы сказал, что практически ничего не получается.
Set objApp = GetObject("", "AkelPad.document")
Set objOfficeApp = GetObject(, "AkelPad.document")
Set objOfficeApp = CreateObject("AkelPad.document")

это все возвращает ошибку. Но видимо изначальная проблема в том, что я не понимаю, как зарегистрировать в системе AkelPad как Automation сервер, сам по себе он не зарегистрирован. Попытка добавить его вручную тоже к успеху не приводит.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Omega
"А кто Вам сказал, Дринкинс, что это американский сериал?" (с)

Offline
Posts: 8
Joined: Fri Sep 30, 2011 2:07 pm

Post by Omega »

FeyFre, если можете помочь по теме, то помогите, пожалуйста. Если просто так зашли в тему, то спасибо, что заглянули, идите дальше.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Omega
Когда-то старый АкелПад (Скриптс-сплагин) регистрировался, но это убрали.. и для большинства случаев правильно сделали, но то, что тот кусочек потеряли, это жаль. Если бы ещё можно было окно Акела встраивать как OLE, то вообще было бы прикольно! У меня редактор лотусскрипта только что по эклипсовски красивый, а по функционалу убогий до горя; уже не раз думал "а вот бы заменить АкелПадом")

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Omega
Ни AkelPad, ни плагины не регистрируются в системе как COM-сервер. А какая конкретная задача стоит?

Offline
Posts: 8
Joined: Fri Sep 30, 2011 2:07 pm

Post by Omega »

Есть БД на MS Access с формочками и тыды, в базе среди прочего хранятся данные в формате Xml, которые нужно редактировать. Обычное поле редактирования MS Access для этого подходит очень слабо, несколько раз искал текстовые редакторы с подсветкой синтаксиса и поддержкой автоматизации, чтобы можно было использовать либо как in либо как out proc server. Пока ничего такого не нашел. Недавно перешел на AkelPad, как основной редактор для xml, все очень удобно и хорошо. Думал что удастся попользовать и через автоматизацию прямо из БД.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Как временное решение можно скидывать во временный файл и уже на него натравливать Акел

Offline
Posts: 8
Joined: Fri Sep 30, 2011 2:07 pm

Post by Omega »

Fr0sT, да, такое в-общем очевидное решение, конечно, приходило в голову, и, к сожалению, оно не подходит по разным причинам. Буду искать дальше ...

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Omega
Идея встроить окно AkelPad'а в другое приложение показалась интересной и это в разрабатываемой версии было
Image
(сборка осуществляется через Library-Build-Eng.cmd).

Но, чтобы использовать библиотеку в среде COM, должен быть какой-либо посредник между AkelPad.dll и приложением, в которое предполагается встроить окно AkelPad'а.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Идея встроить окно AkelPad'а в другое приложение показалась интересной и это в разрабатываемой версии было реализовано (сборка осуществляется через Library-Build-Eng.cmd).
Но, чтобы использовать библиотеку в среде COM, должен быть какой-либо посредник между AkelPad.dll и приложением, в которое предполагается встроить окно AkelPad'а.
В этом же AkelPad.dll реализовать ActiveX/Ole классы. Только не плохо бы убедится что-бы можно было бы создать много экземпляров этого добра(т.е. не использовать глобальных рабочих данных, только служебные COM). А плагины у нас большинство(если не все) на глобальные данные завязаны. Работы много.

(Кстати, просьба пофиксить последнюю строчку akelpad_4\AkelEdit\Build.cmd
if defined EXITCODE exit %2 %EXITCODE%
а то она мне родительский шел закрывает вопреки моему желанию)

ЗЫ: я было намылился делать плагин к Lister-у(просмотр в TotalCmd), но так как сам AkelEdit.Dll магии не содержит, ибо магия в плагинах и самом редакторе, то отложил проект до лучшим времен(что-бы не соврать, было это 20.03.2011). Теперь значительно легче будет.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

FeyFre wrote:(Кстати, просьба пофиксить последнюю строчку akelpad_4\AkelEdit\Build.cmd
if defined EXITCODE exit %2 %EXITCODE%
а то она мне родительский шел закрывает вопреки моему желанию)

Code: Select all

call Build.cmd /S /B

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Легче уж Exit /b сделать в Build.cmd
Или вообще
SET ERRORLEVEL=%EXITCODE%
GOTO EOF

Offline
Posts: 8
Joined: Fri Sep 30, 2011 2:07 pm

Post by Omega »

Instructor wrote:Omega
Идея встроить окно AkelPad'а в другое приложение показалась интересной и это в разрабатываемой версии было реализовано.

Но, чтобы использовать библиотеку в среде COM, должен быть какой-либо посредник между AkelPad.dll и приложением, в которое предполагается встроить окно AkelPad'а.
Не обязательно inproc server, наверное подошел бы и outproc, чтобы AkelPad можно было вызвать, загрузить в него документ, указать формат содержимого (сейчас пока файл не сохранишь подсветка не работает) и потом забрать измененный документ.
Post Reply