Основные понятия технологии OLE-автоматизации
COM (англ. Component Object Model — компонентная модель объектов; произносится как [ком]) — это технологический стандарт компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих распределённых компонентов, каждый из которых может использоваться во многих программах одновременно. Технология воплощает в себе идеи полиморфизма и инкапсуляции объектно-ориентированного программирования. Технология COM очень широко используется в современных версиях Windows.
Связывание и внедрение объектов (Object Linking and Embedding, OLE) — основанный на СОМ механизм, позволяющий приложениям взаимодействовать между собой. Он повышает эффективность работы за счет использования в приложении возможностей других программ. OLE применяют для построения составных документов и использования функциональных возможностей приложений.
OLE-автоматизация — это сервис OLE, предназначенный для интеграции средств разработки и приложений: приложения предоставляют свои функции другим приложениям или управляют их возможностями на одном компьютере или в сетевой среде. Применение этой технологии обеспечивает автоматизацию приложений и их объединение с программным кодом. Ниже приведены основные элементы OLE-автоматизации.
Object Linking and Embedding (OLE )
1. Программы или их компоненты, которые могут управляться другими приложениями (серверы OLE-автоматизации). Microsoft Word, Excel, PowerPoint и Outlook — примеры серверов OLE-автоматизации. Они предоставляет другим приложениям доступ к своим функциям через объектные модели.
2. Другие приложения или средства разработки — контроллеры OLE-автоматизации, программно управляющие серверами OLE-автоматизации за счет доступа к функциям серверов. Microsoft Visual Basic, Visual C++, Visual FoxPro и Visual Basic for Application — все это контроллеры OLE-автоматизации.
Фактически, OLE-автоматизация представляет собой процесс обмена инструкциями между контроллерами и серверами OLE-автоматизации. Пользуясь средствами, которые предоставил сервер, контроллер передает ему инструкции для выполнения.
Основной задачей OLE-автоматизации является обеспечение взаимодействия компонентов и приложений независимо от языков программирования и средств разработки.
Примеры сценариев WSH использующих OLE-автоматизацию
Листинг 14. Пример сценария работающего с документом Excel:
Пример сценария WSH создающего новый документ Excel, добавляющего значение «Test value» и, затем, форматирующего его представлен в листинге 15.
Листинг 15. Пример сценария форматирующего документ Excel:
Set objExcel = CreateObject(«Excel.Application») objExcel.Visible = TrueobjExcel.Workbooks.AddobjExcel.Cells(1, 1).Value = «Test value»objExcel.Cells(1, 1).Font.Bold = TRUEobjExcel.Cells(1, 1).Font.Size = 24objExcel.Cells(1, 1).Font.ColorIndex = 3
Пример сценария WSH создающего документ Word и добавляющего в него форматированный текст представлен в листинге 16.
Листинг 16. Пример сценария работающего с документом Word:
Set objWord = CreateObject(«Word.Application») objWord.Visible = TrueSet objDoc = objWord.Documents.Add()Set objSelection = objWord.Selection objSelection.Font.Name = «Arial»objSelection.Font.Size = «18»objSelection.TypeText «Network Adapter Report»objSelection.TypeParagraph() objSelection.Font.Size = «14»objSelection.TypeText «» https://studopedia.net/5_50361_osnovnie-ponyatiya-tehnologii-OLE-avtomatizatsii.html» target=»_blank»]studopedia.net[/mask_link]
Microsoft Excel ожидает, пока другое приложение завершит действие OLE
PC
Автор Admin На чтение 8 мин. Опубликовано 01.02.2020
Некоторые пользователи Office сообщают об ошибке «Microsoft ожидает, пока другое приложение завершит действие OLE» при попытке запустить сценарий VBA или при запуске Excel из стартовой панели. Сообщается, что эта проблема возникает во всех последних версиях Windows, включая Windows 7, Windows 8.1 и Windows 10.

Если вы по-прежнему сталкиваетесь с ошибкой «Microsoft Excel ожидает, пока другое приложение завершит действие OLE» , перейдите к следующему способу ниже.
Способ 2: разрешение приложений, которые используют DDE в настройках Excel
Как сообщают многие пользователи, проблема может возникнуть, если Microsoft Excel настроен на игнорирование любых приложений, которые пытаются обмениваться данными с Excel, используя протокол динамического обмена данными (DDE) .
Например, допустим, вы дважды щелкнули книгу Excel в проводнике Windows – как только команда зарегистрируется, динамический обмен данными (DDE) будет отправлен в Excel. Этот обмен инструктирует Excel открыть книгу, которую вы только что дважды щелкнули.
Если Excel настроен на игнорирование приложений, использующих протокол динамического обмена данными , обмен не произойдет, и вы увидите сообщение об ошибке «Microsoft Excel ожидает, пока другое приложение завершит действие OLE» .
К счастью, вы можете легко устранить эту проблему, открыв меню параметров Excel и включив протокол DDE. Вот краткое руководство о том, как это сделать:
- Откройте Microsoft Excel и нажмите « Файл» . Не имеет значения, открываете ли вы новую рабочую книгу или новый документ.
- В меню « Файл» выберите « Параметры» на левой панели.
- В меню параметров Excel выберите вкладку « Дополнительно » в левом меню. Затем перейдите на правую панель и прокрутите вниз, пока не дойдете до общего раздела. После этого убедитесь, что флажок, связанный с Игнорировать DDE запросы от других приложений, не отмечен.
Если вы все еще сталкиваетесь с тем же сообщением об ошибке, перейдите к следующему способу ниже.
Способ 3: уничтожение процесса Internet Explorer (IE)
Ошибка «Microsoft ожидает, пока другое приложение завершит действие OLE» может возникнуть при попытке сохранить файл, поскольку процесс IE может мешать динамическому обмену данными (DDE).
Пользователи в аналогичной ситуации сообщали, что проблема была решена после того, как они вручную завершили процесс IE. Вот краткое руководство о том, как это сделать:
- Нажмите Ctrl + Shift + Esc, чтобы открыть диспетчер задач .
- В диспетчере задач перейдите на вкладку Процессы и посмотрите, есть ли у вас какой-либо процесс, принадлежащий Internet Explorer, который в данный момент активен.
- Если вы видите такой процесс, просто щелкните по нему правой кнопкой мыши и выберите Завершить задачу, чтобы закрыть его
- Вернитесь в Excel и посмотрите, возникает ли еще ошибка «Microsoft ожидает, пока другое приложение завершит действие OLE» , когда вы пытаетесь сохранить файл.
Если вы все еще сталкиваетесь с той же ошибкой, перейдите к следующему способу ниже.
Метод 4: Подавление обмена сообщениями Excel
Если вы видите сообщение об ошибке при попытке запустить сценарий VBA, одним из обходных путей может быть подавление обмена сообщениями приложения с помощью крошечного фрагмента кода.
Но имейте в виду, что это не решит саму проблему – это всего лишь обходной путь, который предотвращает появление сообщения об ошибке. Вот краткое руководство по вставке кода VBA в Excel Workbook, которое подавит обмен сообщениями приложений с Excel:
- Откройте Excel и нажмите Alt + F11, чтобы открыть редактор Visual Basic (VBE) .
- На панели «Project» (слева) щелкните правой кнопкой мыши ЭтаКнига и выберите « Insert»> «Module» .
- Во вновь созданном модуле вставьте следующий код:
Закрытое Объявление функции CoRegisterMessageFilter Lib «ole32″ (ByVal IFilterIn As Long, ByRef PreviousFilter) As Long Public Sub KillMessageFilter () Дим IMsgFilter As Long CoRegisterMessageFilter 0 https://best-technologies.ru/pc/microsoft-excel-ozhidaet-poka-drugoe-prilozhenie-zavershit-dejstvie-ole/» target=»_blank»]best-technologies.ru[/mask_link]
Технология OLE
Скорость обработки и обмена информации между различными приложениями в операционных системах компьютерной техники стала возможной благодаря появлению, усовершенствованию и повсеместному внедрению технологии OLE.
Разработка этой программы – большое достижение корпорации Microsoft. Поиск решений для расширения функциональных возможностей интеграции данных привели сначала к появлению, а затем к активному использованию новых принципов обмена информации. Ежедневно пользователи применяют OLE при работе с разными приложениями. Будет интересно узнать, что это такое и как работает.
История появления
Предшественницей новой технологии является Dynamic Data Exchange – DDE, программа, которая работала по протоколу несинхронизированной связи. На практике это выглядело следующим образом: для установления канала связи между данными сервера после передачи запроса требовалось ожидание отклика. То есть, приложение должно было распознать возможные ошибки, существовал риск прерывания связи, тайм-аутов.
Для улучшения качества работы DDE требовалось новое решение, которое и воплотилось в технологии OLE.В чем ее сущность? Object Linking and Embedding (аббревиатура – OLE) – это возможность связывать и внедрять объекты, то есть, программа обеспечивает активацию нового объекта непосредственно в документе.
Новый принцип работы в буфере обмена (в области оперативной памяти, предназначенной для временного хранения созданного объекта) совершенствовался:
- Версия 1.0 появилась в 1990 году и позволила оперировать активными соединениями между двумя документами и внедрять один в другой вне зависимости от типа (текст, фото и прочие). Поскольку первый вариант разрабатывался на базе DDE, то остались основные недостатки несинхронной связи (например, быстрое нарушение связи при изменении маршрута доступа).
- Версия 1.1 дала возможность сохранять исходник в собственном формате, что позволило внедрять из буфера обмена скопированную часть другого документа.
- Версия 2.0 фактически является надстройкой над архитектурой COM, резвившейся на базе версии 1.1. Component Object Model – это модель многокомпонентных объектов, которая обеспечивает объединение отличающихся по формату текстов, рисунков, фото из любых источников.
- ActiveX – это современная версия OLE 2.0, которая была переименована в 1996 году. Изначально она использовалась при необходимости вставить мультимедийные данные.
На данный момент технология OLE занимается внедрением и связыванием составных документов, а группа ActiveX работает в глобальном масштабе: с приложениями, библиотеками, системным программным обеспечением.
OLE на практике
Итак, разработка корпорации Microsoft, внедренная в современные операционные системы, позволяет через буфер обмена работать с разными программами, переносить информационные блоки из одной в другую, формировать и редактировать составной документ из файлов разного типа. Этой возможностью ежедневно пользуются, например, при работе с CorelDRAW или графическим редактором WordPad.
Созданные в одном приложении объекты благодаря технологии связывания и обмена позволяет перенести его в другой. Одно из них становится приложением-сервером, второе – приложением-клиентом. Допустим, вы хотите поместить созданную электронную таблицу в CorelDRAW, таблица будет сервером, а CorelDRAW – клиентом. Данные помещаются в буфер обмена и становятся для многократного редактирования, причем сохраняется последняя версия, а остальные данные удаляются.
Возможности
Object Linking and Embedding обеспечивает новый качественный уровень работы и взаимодействия файлов разного типа и открывает следующие возможности:
- совмещение и объединение разнообразных файлов (рисунки, текст, таблицы, диаграммы, фото, базы данных и прочие виды);
- запоминание: связывание или встройка фрагментов позволяет сохранять сведения об их формате, а также о приложениях, работающих с файлами этого типа;
- программа, в которой хранится встроенная вставка, поддерживает целостность объекта, оставляя при этом доступными функции по перемещению, отображению и копированию как внутри самого объекта, так и между приложениями;
- редактирование: автоматический вызов объекта для редактирования или импорт функций редактирования.
Расширенный функционал работы открывает перед пользователем самые широкие возможности по редактированию и внедрению фрагментов в начальный документ.
Использование
Как понятно из названия технологии, основных функций у нее две:
Рассмотрим, что дает каждая из них пользователям в повседневной работе.
Связывание. Установление связи происходит следующим образом: отдельно создаются исходник и вставка (последниая обязательно сохраняется в файле, после чего импортируется в исходник). Для файлов «наглядного типа» (текст, рисунок) активизация связи приведет к автоматическому запуску приложения, обеспечивающего возможность редактирования.
Для данных, которые не могут быть представлены в таком формате (например, видео или звуковая запись) существует альтернатива – сохранение в виде пиктограммы. Двойной щелчок по ней приведет к активации связи и воспроизведению видеозаписи или звукового сигнала. Обратите внимание: послу связывания редактирование данных в одном приложении приводит к автоматическому изменению их в другом.
Внедрение. Внедрение – несколько другой формат работы, при использовании этой функции объект существует исключительно в одном документе, только в том месте, куда его внедрили. При этом остаются доступными различные функции, например, редактирования или переноса созданного документа на разные компьютеры.
Благодаря технологии OLE пользователи получили самые широкие возможности при работе с документами разного типа, их взаимной интеграции и редактированию.
Источник: qwizz.ru
Технология OLE
Формирование большинства документов сопряжено с необходимостью дополнения текстовой информации различными иллюстративными материалами (схемами, диаграммами, таблицами и др.), которые сложно подготовить в среде текстового редактора. Для этих целей используются сторонние приложения, разработанные специально для создания подобных фрагментов — табличные процессоры, графические редакторы. Следовательно, для сопряжения текстовых фрагментов с иными форматами должна существовать специальная технология, обеспечивающая возможность совмещения текста и, например, иллюстрации (рис. 11.1).
Рис. 11.1. Сопряжение приложений для передачи фрагментов документа
Технология OLE (Object Linking and Embedding, связывание и внедрение объектов) позволяет устанавливать взаимосвязь между данными различных программ, используемых при создании и редактировании документов. В рамках технологии OLE применяются следующие термины:
- • объект — связанный или внедренный элемент данных;
- • источник — приложение или документ, из которого получен внедренный или связанный объект (например, если происходит внедрение текста из Word в рабочий лист Excel, то Word является приложением-источником, которое иногда называют сервером)’,
- • контейнер — приложение или документ, получающее внедренный или связанный объект (например, если происходит внедрение текста из Word в рабочий лист Excel, то Excel является приложением-контейнером, которое иногда называют клиентом или приемником);
- • внедрить — вставить объект в конечный документ так, что объект становится постоянной частью этого документа;
- • связать — сохранить в конечном документе указатель на исходный объект; при изменении исходного объекта связанный объект в конечном документе обновляется автоматически или по запросу;
- • редактирование по месту — возможность, предоставленная технологией OLE, которая позволяет редактировать внедренный объект непосредственно в конечном приложении; при редактировании по месту в приложении-клиенте появляются меню и панели инструментов приложения-сервера.
Технология OLE поддерживает два механизма: связывание (linking) и внедрение (embedding). Различие между ними существенное, поэтому для правильного и эффективного использования OLE необходимо понимать специфику каждого механизма (рис. 11.2).
Рис. 11.2. Схема механизмов технологии OLE: а — связывание; б — внедрение
В случае создания в документе связи с данными документа сторонней программы приложение сохраняет множество указателей на исходные данные, но сами данные оно не хранит. Если исходные данные изменяются, то документ, содержащий связь, обновляется либо автоматически, либо по запросу. Обычно для связанных данных требуется меньше дискового пространства, чем для внедренных, однако ддя связывания необходимо, чтобы исходный документ всегда оставался доступным.
Внедренный объект становится частью файла-клиента. Для того чтобы его использовать совместно с целевым документом, понадобится только один файл. В то же время при внедрении данных исходного документа в документ другого приложения в получающий документ вставляется копия внедряемых данных.
В этом случае при изменении исходных данных внедренная информация обновляться не будет, но редактирование внедренных объектов возможно непосредственно из конечного документа благодаря свойству редактирования по месту, которое позволяет использовать инструменты стороннего приложения непосредственно в теле документа-контейнера. Следует помнить, что при внедрении объекта в файл-контейнер документ может значительно увеличиться в объеме. Если внедряемый объект — текстовый фрагмент или простая графика, то такое увеличение объема, как правило, несущественно. Однако при работе с несколькими большими графическими файлами ресурсы компьютера могут быть серьезно перегружены.
Сравнительная характеристика механизмов связывания и внедрения объектов при использовании технологии OLE приведена в табл. 11.1.
Правильное использование механизмов, предоставляемых технологией OLE, позволит сократить время и ресурсы компьютера и тем самым повысить эффективность работы с документами.
Предположим, что необходимо использовать в отчетном документе Word данные таблицы, содержащей сведения о динамике погашения кредитов в филиале финансовой компании и записанной в исходном документе, который хранится на файловом сервере. Эти данные в исходном документе еженедельно обновляются сотрудниками кредитного отдела и необходимо, чтобы из документа-отчета (Word), подготавливаемого для представления в головной офис, всегда имелся доступ к текущим значениям таблицы. В данном случае необходимо использовать связывание исходного документа и формируемого отчета. Обновление сведений в этом случае может быть автоматичеТаблица 11.1. Сравнительная характеристика механизмов технологии OLE
Механизм технологии OLE
- 1. Меньший объем используемого дискового пространства.
- 2. Автоматическая актуализация объектов
- 1. Все объекты отображаются в конечном документе.
- 2. Для полноценной работы необходим только конечный файл
Необходимы оба файла — исходный и конечный
- 1. Возможно существенное увеличение исходного объема файла.
- 2. Необходима ручная корректировка данных при изменении исходного объекта
- 1. Объект предназначен для нескольких конечных документов и требуется обеспечить идентичность этих данных во всех документах.
- 2. Объект может со временем измениться и необходимо каждый раз обновлять его в исходном приложении.
- 3. Необходимо избежать увеличения размера конечного документа
- 1. Необходимо, чтобы исходные объекты в их текущем виде стали постоянной частью конечного документа.
- 2. Предполагается, что исходный документ может быть недоступен для конечного документа после завершения его формирования
ским, при котором изменения в динамике данных всегда будут отражаться в отчете, или ручным, при котором значения в документе Word обновляются по запросу.
Если необходимо, чтобы исходные данные в их текущем виде стали постоянной частью конечного документа, или полагается, что исходный документ может быть недоступен для конечного документа, следует использовать внедрение, а не связывание. Предположим, что планируется создание отчета в Microsoft Word, который должен содержать несколько сводных таблиц и диаграмм Excel, и необходимо взять этот отчет с собой для представления в головной офис этой финансовой компании, расположенный в другом городе. На жестком диске портативного компьютера установлены Excel и Word, однако исходные документы Excel хранятся на файловом сервере в офисе.
В данном случае следует внедрить нужные данные из таблиц Excel в документ Word. Если в дороге возникнет необходимость переформатировать или изменить данные Excel, можно просто дважды щелкнуть на внедренных данных в документе Word, чтобы запустить Excel и изменить данные с помощью этой программы.
Внедренные объекты необходимо обновлять вручную. Следует помнить, что на загрузку файлов с внедренными объектами времени уходит меньше, чем на загрузку связанных файлов.
Источник: studref.com