Технологии Office Extensions: инсталляция программ и компонентовИсточник: PC Magazine/RE №4/2001 Игорь Новиков
В основе всех программ Office - концептуально похожие между собой объектные модели, в любой из них есть возможность пользоваться средствами языка Visual Basic for Applications (VBA), и, следовательно, большинство из рассмотренных принципов применимы к макропрограмме для любого компонента Office (после внесения небольших изменений, конечно). Рекомендации основаны на анализе реальных прикладных программ на базе Microsoft Office из библиотеки Microsoft Office Extensions (www.microsoft.ru/offext)*. Показанные примеры отдельных типовых решений, связанных с процессом установки, адаптированы для версии Microsoft Office 2000. Дистрибутивный документ Наиболее часто встречающийся прием распространения разработки на базе Microsoft Office - создание документа с макрокомандами или "надстройки" (add-in, документ специального вида, в котором находятся макрокоманды и который можно "подключать" к программам Office). Выбор нужного варианта определяется тем, потребуется ли пользователю при работе документ, связанный с макрокомандами, или ему достаточно предоставить только программные компоненты проекта. Первый вариант - документ Word, рабочая книга Excel, презентация PowerPoint - типичен для "вертикальных" решений, т. е. когда создана разработка для определенного круга пользователей (программы 350, 392, 422, 427). Для автоматизации таких документов широко применяются управляющие элементы (кнопки, панели инструментов), при изменении состояния которых активируются соответствующие процедуры на языке VBA. Дополнительными средствами автоматизации могут быть "автозапускаемые" процедуры (автоматически выполняемые макрокоманды AutoExec, AutoOpen и т. д.). Например, для управления открываемыми документами Word 2000 может служить следующий подход (в данном случае показан пример более функционального приема, который позволяет перехватывать не только предопределенные создателями Word события): 'Компонент класса CAppЕvents Надстройка Второй вариант - надстройка (add-in) - относится к "горизонтальным" решениям. В этом случае пользователь получает, как правило, надстройку, содержащую программный проект и набор интерфейсных инструментов для решения определенного класса задач (программы 380, 387), но не видит надстройку как документ. При этом варианте установки разработчику приходится выбирать, как его инсталлировать в систему. Конечно, пользователь имеет возможность загрузить надстройку через команду меню Сервис/Шаблоны и надстройки, однако для большинства случаев это не самое лучшее решение. Имеется несколько вариантов. Размещение в каталоге автоматической загрузки надстроек (программы 363, 378). В этом случае автоматически загружаются все надстройки, расположенные по указанному адресу, в процессе загрузки какой-либо из программ Office. Узнать о расположении требуемой папки можно, считав свойства Word.Application.Startup и Excel.Application.StartupPath. Обратите внимание, что в Office 2000 реализована технология учета раздельных параметров настройки для каждого профиля пользователя. Поэтому реальный путь имеет вид C:\WINDOWS\Profiles\UserName\Application Data\Microsoft\Word\Startup. В целях совместимости с программами на VBA для предыдущих версий Office остается действующим также общий для всех зарегистрированных пользователей путь, например C:\Program Files\Microsoft Office\Office\Startup. В Microsoft Excel дополнительно реализована возможность учета дополнительного стартового каталога. Его имя (без кавычек) можно задать в ключе реестра Windows HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Excel\Options как строковый параметр под именем AltStartup. Программная загрузка (программа 359). Для того чтобы ускорить процедуру загрузки Office-приложения и избежать побочных эффектов при взаимодействии с другими устанавливаемыми программными средствами, можно предусмотреть загрузку надстройки как реакцию на определенное действие или событие в системе. Например, можно назначать "горячие" клавиши или осуществлять загрузку основных надстроек-компонентов при получении соответствующей команды из стартовой надстройки (программа 364). С точки зрения разработчика, загрузка шаблона или надстройки выполняется как обращение к коллекции объектов Addins. В Microsoft Word или Excel для их загрузки нужно выполнить следующую команду: With AddIns.Add("C:\Temp\ExlTools.xla") В PowerPoint для реализации аналогичной операции потребуется следующее решение: With Addins("C:\Temp\PPtools.ppa") Командная загрузка. Автоматическую загрузку Excel-документа (.xls) или надстройки (.xla) можно реализовать путем ввода команды OPEN в системном реестре Windows. Для этого потребуется в разделе HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Excel\Options создать строковый параметр с именем "OPEN". Сначала вводится опция /R (только для чтения) или /F (загрузка по требованию) (задание опций является необязательным), вслед за которой записывается (через пробел) имя файла. Оно дается с указанием полного пути доступа (в кавычках), если этот файл не находится в стандартной папке надстроек. Например: OPEN = "/R "C:\Temp\ExlTools.xla"". Если предполагается загрузить несколько файлов, то аналогичным образом создаются дополнительные строковые параметры, имеющие имя "OPEN1", "OPEN2" и т. д. Загрузка для надстройки Word может быть реализована путем задания соответствующих параметров в командной строке запуска. Например, с помощью команды WinWord "\Add-in.dot"/mMyInstall выполняется загрузка надстройки Add-in.dot с последующим исполнением VBA-процедуры MyInstall (макроc AutoExec пропускается). Настройка интерфейса Одна из наиболее важных функций установки - это настройка интерфейса. Одна из решаемых при этом задач - обновление перечня команд меню и кнопок на панелях инструментов. В Word это решается сравнительно просто, так как все соответствующие параметры сохраняются в общем шаблоне normal.dot и можно программным путем ввести изменения, а затем сохранить измененный normal.dot. В Excel это реализовано иначе: параметры измененной настройки меню и панелей инструментов сохраняются в специальном файле, расположенном в каталоге Windows или в C:\WINDOWS\Profiles\UserName\Application Data\Microsoft\Excel. Если компьютер пользователя не подключен к сети или настройка не требует задания имени пользователя при входе в систему, то файл измененных параметров имеет имя excel8.xlb. Если же текущий сеанс загрузки Windows произведен под именем UserName, то файл будет называться UserName8.xlb. Поэтому для переноса параметров интерфейса потребуется сначала загрузить в Excel заранее подготовленный xlb-шаблон, и после выгрузки Excel соответствующий файл будет создан автоматически. Создание надстроек вида COM Add-ins Учет системы безопасности Процедура установки * Совместный проект PC Magazine/RE и российского представительства компании Microsoft. Для просмотра конкретной разработки из тех, что показаны в качестве примеров, следует использовать запрос www.microsoft.ru/offext/aview.asp?mode=1&id=NN; где NN - учетный номер программы. |