[Офис] Портативный com для Excel в MS Office 2003

Тема в разделе "Софт", создана пользователем Leony, 6 июл 2009.

Статус темы:
Закрыта.
  1. Leony

    Leony

    Регистр.:
    18 мар 2008
    Сообщения:
    153
    Симпатии:
    25
    С помощью скриптов на AutoIt можно полностью управлять, например, Excel'ем. Но вот беда: ни один портативный пакет офиса, насколько я знаю, чтобы не светится в системе, не регистрирует com-сервер. Т.е. автоматизация на авто-ите на портабл-версиях Офиса не работает. У кого есть какие идеи, чтобы самому это сделать?
    С помощью oleview.exe при установленном обычном офисе 2003 видны в системе 2 библиотеки:
    Type Libraries > Microsoft Excel 5.0 Object Library (Ver 1.0) на
    C:\Program Files\Microsoft Office\Office11\XL5EN32.OLB
    и
    Type Libraries > Microsoft Office 11.0 Object Library (Ver 2.3) на
    VBE6EXT.OLB, MSO.DLL, stdole2.tlb.
    Пробовал выкоцнуть все эти файлы + папки из
    c:\Program Files\Common Files\Microsoft Shared\OFFICE12\
    c:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\
    затем регистрировал
    dll с помощью regsvr32
    olb с помощью regtlib.exe
    MSO.DLL так зарегистрировать и не удалось – возвращает ошибку.
    stdole2.tlb должен быть в c:\WINDOWS\system32\stdole2.tlb. Регистрируется на ура.
    После регистрации XL5EN32.OLB сразу появляется интерфейс
    Type Libraries > Microsoft Excel 5.0 Object Library (Ver 1.0).
    Но при всех этих бубнах
    Код:
    #include <ExcelCOM_UDF.au3>
    Local $oExcel = ObjCreate("Excel.Application")
    MsgBox(0, "AutoIt", $oExcel)
    возвращает ноль.
    Вероятно, мало регистрировать эти библиотеки типов.
    Идея пока простая: проанализировать сам инсталятор Офиса и посмотреть,
    что он регистрирует в системе.
     
Статус темы:
Закрыта.