|
|
|
Запустить макрос ЦWORD посредством DDE
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Подскажите, пожалуйста, какой командой в следующем коде ещё запустить нужный макрос: PROCEDURE OpenDocThroughDDE( DocName varchar2 ) IS AppId pls_integer; ConvID pls_integer; msg varchar2(1000); dir varchar2(1000); i pls_integer; BEGIN set_application_property(cursor_style,'BUSY'); UTF.SHOWMES( 'Документ передается в MS Word (через DDE)', NO_ACKNOWLEDGE ); SYNCHRONIZE; dir:=ReadFromRegistry('HKEY_LOCAL_MACHINE\SOFTWARE\microsoft\windows\currentversion\app paths\winword.exe\Path'); msg:='Не удается загрузить MS Word. Обратитесь к администратору системы.'; IF is_window_exists('Microsoft Word')=0 THEN AppID := DDE.App_Begin( dir||'\winword.exe /n',DDE.App_Mode_Normal); m_pause(5); END IF; msg:='Ошибка DDE.'||chr(10)|| 'Перейдите в Word (Alt-Tab) и попробуйте открыть файл '||DocName; ConvID := DDE.Initiate('WinWord', 'System'); m_pause(3); msg:='Не удается открыть файл '||DocName||'.'||chr(10)|| 'Перейдите в Word (Alt-Tab) и попробуйте открыть файл '||DocName; begin DDE.Execute(ConvId,'[FileOpen .name="'||DocName||'",.ConfirmConversions=0]',1000); -- Обновляем все поля DDE.Execute(ConvId,'[EditSelectAll]',1000); DDE.Execute(ConvId,'[UpdateFields]',1000); DDE.Execute(ConvId,'[StartOfDocument]',1000); ?????????????????????????????????????????? exception when others then null; end; Отговаривать, что это старо, не надо, у меня задача заставить работать именно этот кусок - пристроить к нему нужный макрос, последний я не могу вживить в шаблон документф, т.к. используется формат RTF. Таковы условия задачи, не мне их менять. Заранее благодарю за любую помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2011, 00:45 |
|
||
|
Запустить макрос ЦWORD посредством DDE
|
|||
|---|---|---|---|
|
#18+
Елена Гох Попробуйте так DDE.Execute(ConvId,'[Run("xxx")]',1000); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2011, 11:41 |
|
||
|
Запустить макрос ЦWORD посредством DDE
|
|||
|---|---|---|---|
|
#18+
У меня тоже ткая мысль первой возникла, но правильный ответ такой: DDEExecute chan, "[Toolsmacro.name=""Macro1"",.Run]" для запуска макроса без параметров. Но всё равно от DDE пришлось отказаться из-за кодировки и невозможности поддерживать защиту от макросов в диалоге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2011, 22:00 |
|
||
|
Запустить макрос ЦWORD посредством DDE
|
|||
|---|---|---|---|
|
#18+
Почему не хочешь сделать это же через OLE ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2011, 16:23 |
|
||
|
|

start [/forum/topic.php?fid=51&msg=37139932&tid=1878766]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 485ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...