Что такое dde сервер windows

Dynamic Data Exchange (DDE) — механизм взаимодействия приложений в ОС Windows и OS/2

DDE — давний и прижившийся протокол обмена данными между разными приложениями, появившийся еще на заре эры Windows. С тех пор на его базе был создан интерфейс OLE, а в 32-разрядном API Windows появились и другие методы межпрограммного взаимодействия. Но ниша, занимаемая DDE, осталась неизменной — это оперативная передача и синхронизация данных в приложениях.

Приложения, использующие DDE, разделяются на две категории — клиенты и серверы (не путать с одноименной архитектурой СУБД). Оба участника процесса осуществляют контакты (conversations) по определенным темам (topic), при этом в рамках темы производится обмен элементами данных (items). Устанавливает контакт клиент, который посылает запрос, содержащий имена контакта и темы. После установления контакта всякое изменение элемента данных на сервере передается данным клиента.

Первоначально программирование DDE было чрезвычайно сложным делом — оно требовало взаимосвязанной обработки более чем десяти сообщений Windows. В версии Windows 3.1 появилась библиотека DDEML, которая перевела управление DDE на уровень вызова процедур. Разработчики подсистемы DDE в Delphi, верные идеологии создания VCL, свели интерфейс этого протокола к четырем компонентам — двум для сервера и двум для клиента.

На уровне поддержания контакта лежат компоненты TDDEServerConv и TDDEClientConv. Первый играет пассивную роль — он только указывает имя одной из поддерживаемых сервером тем. Все операции по установлению и разрыву контакта осуществляет из приложения-клиента второй компонент.

Обмен данными по протоколу DDE состоит из трех этапов:

  • установка соединения
  • собственно обмен данными
  • разрыв соединения

Каких-то особенностей, характерных именно для протокола DDE, здесь, как видите, нет: можно легко провести параллели между протоколом DDE и файлами (открытие, работа, закрытие), между протоколом DDE и протоколом TCP (установка соединения, обмен данными, разрыв соединения) и т.д. В процессе установки соединения один из участников является его инициатором (в терминологии DDE — клиентом), а второй находится в постоянной готовности к установке соединения (в терминологии DDE — сервер). И сервер, и клиент — это некие приложения (упрощенно — *.exe-файлы), запущенные на одном или на разных компьютерах, хотя одно и то же приложение в принципе может являться одновременно и сервером, и клиентом протокола DDE (пример такого приложения — электронные таблицы Microsoft Excel). Со стороны клиентского приложения каких-либо предварительных действий в протоколе DDE делать не требуется, а вот серверное приложения должно сначала зарегистрироваться в Windows в качестве сервера протокола DDE. Если этого не сделать, клиент DDE не сможет подсоединиться к серверу. Сервер DDE при регистрации сообщает Windows то имя, под которым он будет «известен» на данном компьютере. В терминологии DDE это имя называется Application. Разработчики DDE-серверов обычно стараются сделать это имя совпадающим с именем самого приложения, например Application-имя упомянутых выше таблиц Microsoft Excel — «EXCEL», DDE-сервер системы Intouch имеет имя «VIEW» и т.д. В принципе, имя для своего DDE-сервера можно задавать любое, лишь бы оно вписывалось в традиционные понятия об имени (латинские буквы, цифры, знаки подчеркивания) и имело длину не более 8 символов. Именно по этому имени и будет подсоединяться к серверу клиент DDE-протокола.

Посредством одного контакта могут быть связаны и синхронизированы несколько пар элементов данных. Для их описания предназначены компоненты TDDEServerItem и TDDEClientItem. Каждый из них во время работы должен указывать на контакт, к которому он привязан. Кроме того, в составе обоих есть свойства, содержащие некий текст. При установленном контакте их содержимое синхронизируется. Помимо этого в модуле DDEMAN описан и пятый компонент, который управляет всеми связями DDE.

DDEML

Win32 API включает библиотеку DDEML

Поскольку Win32 API имеет архитектуру, построенную на обработке сообщений, то использование сообщений — наиболее подходящий метод для автоматической передачи информации между приложениями. Тем не менее, сообщения Win32 содержат только два параметра (wParam, lParam) для передачи данных. В этом Вы можете убедиться прочитав пример для среды Delphi, в котором используется функция посылки сообщения. В результате, эти параметры должны косвенно указывать на передаваемые данные. Протокол DDE определяет точно, как приложения должны использовать wParam и lParam параметры, чтобы передать данные. Протокол DDE имеет специфические правила для распределения и удаления передаваемых объектов.

dde server window что это

Dynamic Data Exchange (DDE) — механизм взаимодействия приложений в операционных системах Microsoft Windows и OS/2. Хотя этот механизм до сих пор поддерживается в последних версиях Windows, в основном он заменён на более мощные механизмы — OLE, COM и Microsoft OLE Automation. Однако, DDE по-прежнему используется в некоторых местах внутри самой Windows, в частности, в механизме ассоциации расширения имени файла с приложениями. Это является следствием модели разработки, в которой Microsoft в новых версиях ОС Windows следит за обеспечением совместимости со всеми её предыдущими версиями. Возможно использование для извлечения данных из сторонних приложений.

DDE — давний и прижившийся протокол обмена данными между разными приложениями, появившийся еще на заре эры Windows. С тех пор на его базе был создан интерфейс OLE, а в 32-разрядном API Windows появились и другие методы межпрограммного взаимодействия. Но ниша, занимаемая DDE, осталась неизменной — это оперативная передача и синхронизация данных в приложениях.

Приложения, использующие DDE, разделяются на две категории — клиенты и серверы (не путать с одноименной архитектурой СУБД). Оба участника процесса осуществляют контакты (conversations) по определенным темам (topic), при этом в рамках темы производится обмен элементами данных (items). Устанавливает контакт клиент, который посылает запрос, содержащий имена контакта и темы. После установления контакта всякое изменение элемента данных на сервере передается данным клиента.

Первоначально программирование DDE было чрезвычайно сложным делом — оно требовало взаимосвязанной обработки более чем десяти сообщений Windows. В версии Windows 3.1 появилась библиотека DDEML, которая перевела управление DDE на уровень вызова процедур. Разработчики подсистемы DDE в Delphi, верные идеологии создания VCL, свели интерфейс этого протокола к четырем компонентам — двум для сервера и двум для клиента.

На уровне поддержания контакта лежат компоненты TDDEServerConv и TDDEClientConv. Первый играет пассивную роль — он только указывает имя одной из поддерживаемых сервером тем. Все операции по установлению и разрыву контакта осуществляет из приложения-клиента второй компонент.

Обмен данными по протоколу DDE состоит из трех этапов:

  • установка соединения
  • собственно обмен данными
  • разрыв соединения

    Каких-то особенностей, характерных именно для протокола DDE, здесь, как видите, нет: можно легко провести параллели между протоколом DDE и файлами (открытие, работа, закрытие), между протоколом DDE и протоколом TCP (установка соединения, обмен данными, разрыв соединения) и т.д. В процессе установки соединения один из участников является его инициатором (в терминологии DDE — клиентом), а второй находится в постоянной готовности к установке соединения (в терминологии DDE — сервер). И сервер, и клиент — это некие приложения (упрощенно — *.exe-файлы), запущенные на одном или на разных компьютерах, хотя одно и то же приложение в принципе может являться одновременно и сервером, и клиентом протокола DDE (пример такого приложения — электронные таблицы Microsoft Excel). Со стороны клиентского приложения каких-либо предварительных действий в протоколе DDE делать не требуется, а вот серверное приложения должно сначала зарегистрироваться в Windows в качестве сервера протокола DDE. Если этого не сделать, клиент DDE не сможет подсоединиться к серверу. Сервер DDE при регистрации сообщает Windows то имя, под которым он будет «известен» на данном компьютере. В терминологии DDE это имя называется Application. Разработчики DDE-серверов обычно стараются сделать это имя совпадающим с именем самого приложения, например Application-имя упомянутых выше таблиц Microsoft Excel — «EXCEL», DDE-сервер системы Intouch имеет имя «VIEW» и т.д. В принципе, имя для своего DDE-сервера можно задавать любое, лишь бы оно вписывалось в традиционные понятия об имени (латинские буквы, цифры, знаки подчеркивания) и имело длину не более 8 символов. Именно по этому имени и будет подсоединяться к серверу клиент DDE-протокола.

    Посредством одного контакта могут быть связаны и синхронизированы несколько пар элементов данных. Для их описания предназначены компоненты TDDEServerItem и TDDEClientItem. Каждый из них во время работы должен указывать на контакт, к которому он привязан. Кроме того, в составе обоих есть свойства, содержащие некий текст. При установленном контакте их содержимое синхронизируется. Помимо этого в модуле DDEMAN описан и пятый компонент, который управляет всеми связями DDE.

    DDEML

    Win32 API включает библиотеку DDEML

    Поскольку Win32 API имеет архитектуру, построенную на обработке сообщений, то использование сообщений — наиболее подходящий метод для автоматической передачи информации между приложениями. Тем не менее, сообщения Win32 содержат только два параметра (wParam, lParam) для передачи данных. В этом Вы можете убедиться прочитав пример для среды Delphi, в котором используется функция посылки сообщения. В результате, эти параметры должны косвенно указывать на передаваемые данные. Протокол DDE определяет точно, как приложения должны использовать wParam и lParam параметры, чтобы передать данные. Протокол DDE имеет специфические правила для распределения и удаления передаваемых объектов.

    …DDE Доступ к HID-устройствам Источник бесперебойного питания если есть, то не отключаем Оповещатель Планировщик заданий Сервер папки обмена Служба сетевого DDE Служба сообщений Удаленный реестр Центр обеспечения безопасности можете не отключать, но…
    Почему компьютер зависает?

    …LM Обеспечивает безопасность программам, использующим удаленные вызовы процедур (RPC) через транспорты, отличные от именованных каналов. Вручную entercad Сервер папки обмена Позволяет просматривать страницы папок обмена удаленных компьютеров. Вручную entercad Сетевой вход……удаленной сети, когда программа обращается к удаленному DNS- или NetBIOS-имени или адресу. Вручную entercad Диспетчер сетевого DDE Управляет разделяемыми объектами динамического обмена данными и используется сетевым DDE Вручную entercad Диспетчер служебных…
    Подскажите. На компе куча левых служб.

    …А так — в администрирование, в службы, и отключить/запретить все что жить мешает. Ну на кой тебе DDE сервер не на серванте?…
    Компьютер сильно тормозит.При выключении вылетает окошко «Завершение DDE Server»Что это?

    …обновление,Беспроводная настройка,Брандмауэр Windows/Общий доступ к Интернету (ICS),Веб-клиент,Вторичный вход в систему,Диспетчер сетевого DDE,Источник бесперебойного питания,Клиент отслеживания изменившихся связей,Маршрутизация и удаленный доступ,Модуль поддержки NetBIOS через TCP/IP,Обозреватель компьютеров,Оповещатель,Планировщик заданий,Сервер,Сервер папки обмена,Система событий COM+,Системное приложение COM+,Служба времени Windows,Служба обнаружения…
    Какие службы Вы отключали безболезненно для системы, поделитесь, пожалуйста, опытом?

    …Получаю данные в Эксель через DDE сервер (каждую секунду значение в ячейке меняется). Необходимо сделать историю из последних 100 значений….
    Эксель — как сделать аналогию стека?

    …служба ) Служба восстановления системы (после установки сделать резервную копию системы с помощью сторонней программы) Сетевой вход в систему Сервер папки обмена Сервер Оповещатель Где-то так Вообще надо смотреть по компу Что ему……Справка и поддержка (кому как ) Совместимость быстрого переключения пользователей (тоже кому как) Службы терминалов Служба сообщений Служба сетевого DDE Служба общих сетевых ресурсов проигрывателя Windows Media Служба индексирования (вообще тупорылая служба ) Служба восстановления… Сервер DDE
    какие системные службы на windows xp лучше отключить?

    …Зайди в панели управления в Администрирование—>Службы поищи в списке Служба сетевого DDE может она включена? Кстати Сервер папки обмена тож тогда выруби, если в локалке ничего не расшариваешь….
    Что такое DDE Server Window Достал уже, всякий раз во время перезагрузки сообщает, что не может завершить работу и

    …если не один из ваших программ защиты его не использует. )По моему у Каспера есть свой… Сервер папки обмена * Служба COM записи компакт-дисков IMAPI (только если вы не пользуетесь встроенные……доступ к Интернету (ICS) * Веб-клиент * Вторичный вход в систему (если вы единственный пользователь на компе) * Диспетчер сетевого DDE * Доступ к HID-устройствам * Координатор распределенных транзакций * Маршрутизация и удаленный доступ * Модуль поддержки NetBIOS…
    Как увеличить быстродействие компа?

    …DDE Server Window»Окно Сервера динамического обмена данными» павильно и пишет это настройки сбиты системы .обычно ликвидировать…
    Тем, кто хорошо разбирается в компьютерах.

    Технология DDE Что такое DDE ?

    Динамический обмен данными, или DDE,обеспечивает простейший канал передачи сообщений между двумя программами ,работающими под управлением Windows. Канал DDE — это связь, служащая для передачи информации. Обычно по этому каналу передаётся текст, но некоторые программы могут передавать также графику. В Visual Basic for Application по каналу DDE может передаваться только текст или числа.

    Во всех коммуникациях на базе DDE участвуют две программы: сервер DDE и клиент DDE. Сервер DDE — это программа , содержащая данные, которые необходимы программе-клиенту. Программа-клиент инициирует обмен по коммуникации на базе DDE , запросив данные от сервера. Обычно информация направляется от сервера к клиенту.

    Однако существуют директивы DDE, позволяющие передавать данные и от клиента к серверу. Кроме того, данные, посылаемые серверу, могут быть директивами, которые указывают серверу на необходимость выполнить некоторые действия, например открыть файл.

    Следует воздерживаться устанавливать двухстороннюю связь, система может зациклиться. Связи DDE работают в двух «температурных» режимах — горячем и холодном. Горячие связи DDE автоматически обновляют данные клиента при изменении связанных данных на сервере. Холодные связи обновляют данные только в том случае, когда серверу посылается директива DDERequest. Visual Basic for Application автоматически управляет только холодными связями. Горячие связи необходимо организовывать программным путём.

    Применение DDE.

    Чтобы использовать DDE , вначале нужно установить коммуникационный канал между двумя программами. Чтобы установить этот канал и определить, что будет по нему передаваться, потребуются 3 элемента информации: программа, тема и элемент. Значение этих 3 элементов зависит от той программы , с помощью которой вы пытаетесь осуществить коммуникацию, и используемых этой программой способов обработки данных.

    Программа — это имя программы-сервера , с которой вы хотите связаться. Программы , подлежащие DDE, зарегистрированы в операционной системе Windows. Имя такой программы не обязательно является тем именем , которое отображается в окне Program Manager. Имена программ, зарегистрированных в системе Windows, приведены в табл.

    Таблица. Зарегестрированые имена программ, поддерживающих DDE

    Программа Зарегистрированное имя

    Word for Windows WinWord

    Windows Program Manager ProgMan

    Visual Basic for Windows имя_программы*

    *Для интерпретированной программы имя_программы является именем окна Project этой программы ; для компилированной программы имя_программы — это имя исполняемого файла без расширения .EXE.

    Тема — это имя документа , содержащего необходимые данные, а элемент — некий логический элемент этого документа . Для Excel тема — это имя таблицы, а элемент — область ячеек. Для программы на Visual Basic for Windows тема — это имя бланка, а элемент — элемент управления в этом бланке , содержащий необходимые данные . Для Word тема — это имя документа , а элемент — либо закладка , либо селектор Word Basic вроде \ StartOfDoc, указывающий на начало документа (Word Basic это встроенная в текущую версию Word средство программирования на Basic). Для получения перечня всех возможных тем и элементов обратитесь к документации на программу , которую вы хотите использовать, или посмотрите интерактивную подсказку данной программы.

    Открытие коммуникационного канала DDE.

    Чтобы открыть канал DDE с другой программой , эта программа в первую очередь должна быть запущена. Для запуска используйте операторы Shell и AppActivate. Будьте осторожны при использовании оператора Shell: эта команда запускает программу не синхронно и следующий оператор вашей программы может выполниться прежде , чем начнёт работать вторая программа. После команды Shell потребуется пауза , которая позволит пропустить время инициализации и старта указанной программы.

    Для инициализации связи между двумя выполняющимися программами используется метод DDEIniate, который имеет следующий синтаксис:

    канал = DDEInitiate(программа, тема)

    Аргументы программа и тема являются строками. Чтобы определить, какие значения аргументов используются, обратитесь к документации на программу. Этот метод возвращает номер канала, используемый в других командах Visual Basic для идентификации данного коммуникационного канала. При выполнении метода устанавливается соединение DDE между Visual Basic for Applications и другой программой.

    Закрытие канала DDE.

    После завершения использования канала DDE его необходимо закрыть с помощью метода DDETerminate, имеющего следующий синтаксис:

    В данном случае канал — это номер канала, полученный от метода DDEInitiate.

    Получение информации от сервера.

    Чтобы запросить данные от сервера по открытому коммуникационному каналу, используется метод DDERequest, имеющий следующий синтаксис:

    Переменная = DDERequest(канал, элемент)

    Аргумент канал является номером канала , возвращённым методом DDEInitiate, а элемент указывает на определённую часть необходимых данных. Переменная представляет собой имя переменной, принимающей указанные данные. Эта переменная должна быть типа Variant.

    В качестве примера создайте в Excel страницу диалога, которая использует DDE для получения строки текста из Word. В Word выделите предложение , укажите директиву Edit/Bookmark и назовите полученную закладку BookMark1. Затем переключитесь в Excel и запишите в модуле три приведённые ниже процедуры . Замените в этих процедурах ссылку на документ 26VBAOR.DOC ссылкой на один из ваших документов.

    Dim ChannelNum As Integer

    ‘Установление связи DDE с Word и получение предложения.

    ‘Запуск Word и открытие документа 26VBAOR.DOC

    ‘Замените имя документа и путь на атрибуты одного из ваших документов

    ChannelNum = DDEInitiate (“WinWord”, “I:\BHV_VBA\26BAOR.DOC”)

    ‘Отображение номера канала в диалоговом окне.

    Results = DDERequest (ChannelNum, “BookMark1”) ‘Запрос данных.

    ‘Отображение данных в диалоговом окне.

    DialogSheets (“DDEDialog”). EditBoxes (“DDEDataBox”). Text = Results

    Создайте страницу диалога, назовите её DDEDialog; добавьте к ней три командные кнопки, две метки и два текстовых окна. Назовите текстовое окно, расположенное под меткой «Результат», DDEDataBox, а второе текстовое окно – DDEChannelBox. Для подключения командной кнопки “Открыть DDE” к процедуре OpenChannel, командной кнопки “Принять данные” – к процедуре GetData и командной кнопки “Закрыть DDE” – к процедуре CloseChannel используйте директиву Tools/Assign Macro.

    На пиктографическом меню Forms нажмите пиктограмму Run Dialog, затем на бланке нажмите командную кнопку “Открыть DDE”. Нажатие этой кнопки инициирует выполнение процедуры OpenChannel, которая открывает канал к программе Word for Windows (WinWord), затем запрашивает документ 26BAOR.DOC и отображает номер канала в окне DDEChannelBox.

    Нажатие командной кнопки “Принять данные” инициирует выполнение процедуры GetData, запрашивающей содержимое закладки BookMark1. Если текст закладки будет обнаружен, то он отобразится в окне DDEData.

    С Для закрытия канала DDE нажмите командную кнопку “Закрыть DDE”.

    Передача информации серверу.

    Чтобы послать информацию серверу, используется метод DDEPoke. Этот метод имеет следующий синтаксис:

    DDEPoke (канал, элемент, данные)

    Аргумент элемент указывает текст на сервере , который подлежит замене, а аргумент данные содержит текст, заменяющий текст на сервере. Единственной проблемой при использовании этого метода является то, что аргумент данные должен быть областью таблицы и не может быть простой строкой. Возможно, в будущих версиях Excel эта проблема будет устранена.

    Для примера, добавьте процедуру, посылающую программе Word некоторый текст, который заменяет текст, маркированный как закладка BookMark1. Вначале добавьте к бланку командную кнопку “Послать данные”. Затем подключите эту кнопку к следующей процедуре:

    ‘Копирование данных из диалогового окна в ячейку таблицы.

    Sheets (“Sheet1”). Cells(1, 1). Formula = _

    DialogSheets(“DDEDialog”) . EditBoxes(“DDEDataBox”). Text

    ‘Создание ссылки на ячейку таблицы.

    Set Result = Sheets(“Sheet1”). Cells(1, 1)

    ‘Пересылка ссылки на ячейку связанной программе для замены текста, маркированного как

    Application.DDEPoke ChannelNum, “BookMark1”, Result

    На пиктографическом меню Forms нажмите пиктограмму Run Dialog, затем на бланке нажмите командную кнопку “Открыть DDE” для подключения к Word. Для копирования текущего содержимого закладки BookMark1 в текстовое окно “Результат” нажмите командную кнопку “Принять данные”. В верхней части экрана расположено окно Word for Windows , на котором видна строка текста, маркированная как BookMark1. В нижней части экрана расположено окно Excel с диалоговым окном “Тестер DDE ” , на котором в текстовом окне “Результат” виден тот же текст.

    Теперь текст находящийся в приемном окне «Результат» можно редактировать. Чтобы этот отредактированный текст заменилзаменил собой текст , маркированый как BookMark1 ,нажмите кнопку «Послать данные».

    Процедура PokeChannel1 сначала копирует содержимое текстового окна в ячейку А1 таблицы Sheet1 . Затем это значение загружается как объект в переменную Result. Запомните , что метод DDEPoke должен должен получить в качестве в качестве аргумента не строку , а ссылку на область ячеек , содержащих этот текст . Затем метод DDEPoke передаёт этот текст в Word , где он заменяет собой текст , маркированный как BookMark1 . Для закрытия связи нажмите командную кнопку «Закрыть DDE».

    Передача директив серверу.

    Кроме передачи программе некотрох данных , связь DDE позволяет предать и директивы. Дитективы , которые вы хотите передать прогремме , должны быть на командном языке той программы , которой вы их передаёте.

    Чтобы передать директивы подключённой программе , используется метод DDEExecute , имеющий следующий синтаксис :

    DDEExecute ( канал , командная_строка)

    Аргумент канал является номером канала DDE , а аргумент командная_строка — строкой, содержащей директиву для подключенной программы.

    Перешлите программе Word директиву File/Print Preveiw. Для этого добавьте кдиалоговому окну «Тестер DDE» командную кнопку «ПредПросмотр» и подключите ее к следующей процедуре:

    ‘ Пересылка связанной програме директивы предварительного просмотра.

    DDExecute ChannelNum , «[FilePrintPreview]»

    Обратите внимание на то , что директива FilePrintPreview заключена в квадратные скобки . Если вы опустите скобки , то Word вставит эту директиву как текст в точку вставки а не выполнит её как директиву.

    Технология OLE

    OLE имеет значительно больше возможностей, чем DDE. Если DDE просто обеспечивает обмен данными между программами, то OLE позволяет передавать объекты. Существуют 2 различных типа OLE: Linking and Embedding (Связь и внедрение) и OLE Automation(Автоматизация OLE).

    С помощью Linking and Embedding вы внедряете объекты одной программы в документы другой. Внедряемые объекты создаются копированием объекта в одной программе, а затем вклеиванием связи с этим объектом в другую программу. После этого объект можно редактировать в породившей его программе. Программа, отображая внедренный объект, не должна ничего знать о том, как он создается и ли изменяется, — она только отображает этот объект.

    OLE Automation позволяет одному объекту управлять другой программой посредством доступа к ее объектам и методам. При использовании OLE Automation Объекты и методы подключенной программы становятся расширением языка Visual Basic.

    Применение OLE Automation

    Прежде чем использовать объекты и методы другой программы, вы должны все узнать об этих объектах. Если данная программа содержит библиотеку объектов, зарегистрированную в системе и доступную, вы можете использовать Object Browser для ознакомления с объектами и методами, включенными в эту библиотеку. Если программа не разрешает доступ к библиотеке, то вы должны обратится к документации на программу — чтобы ознакомится с доступными объектами и методами. Для получения объектов программы с помощью Object Browser необходимо зарегистрировать эту программу в Excell. Вначале укажите директиву Tools/ References для отображения диалогового окна References. Затем включите контрольный индикатор, соответствующий данной программе, в окне списка Avalaible References. После того, как программа зарегистрирована, все ее объекты становятся доступными Visual Basic.

    Теперь вы можете использовать Object Browser для изучения объектов другой программы. Кроме того, Object Browser отображает имя, под которым зарегестрирована в системе данная программа.

    Имя, используемое в целях регистрации программы для коммуникаций OLE, отличается от имени используемого для DDE. Это объясняется тем, что связывается OLE с программой, а DDE — с объектами из библиотеки ee oбъектов.

    Объекты другой программы могут иметь те же имена, что и объекты в вашей программе; следовательно, для доступа надежнее пользоваться полными именами. Например если вы запустите MS Excell VBA и выполните оператор APPlication.Name

    то получите имя Excell. Но если вы выполните оператор

    то получите имя Project.

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

    Создание и открытие объектов.

    Для программ, управляемых посредством OLE Automation , существуют 2 метода создания новых объектов или открытия уже существующих объектов: Createobject() и GetObject(). В общем случае объектами, к которым вы получаете доступ с помощью указанных методов, являются документы подключенных программ. Для полностью OLE — согласованных программ, таких как Excell, открытие или создание новых файлов осуществляется методами связанных объектов а не методами Create object() и GetObject(). Для частично OLE — согласованных программ вроде Word создание связей с документами обеспечивается с помощью методов.

    Метод Createobject имеет синтаксис

    Set объектная_переменная = Createobject(класс)

    где объектная_переменная представляет собой любую переменную типa Object или Variant, а класс является классом создаваемого объекта. Аргумент класс состоит из двух частей, разделенных точкой:

    где Регистрационное_Имя — имя под которым программа зарегестрирована в системе, а Объект — тип создаваемого объекта. Для Excell тип объекта может принимать значения Application, Sheets и Charts, для Word — Basic.

    Так следующий оператор запускает Excell и создает новую таблицу:

    Set Xlsheet = createObject(«Excell.Sheet»)

    Если Excell уже запущен и рабочая папка уже открыта, то оператор добавит новую таблицу к открытой рабочей папке. Если Excell не запущен, то оператор запускает Excell с новой рабочей папкой.

    Следующий оператор запускает Word и возвращает объект, на который можно ссылаться как на Word Basic:

    Set WordSheet = createObject(«Word.Basic»)

    Поскольку программа Word не полностью OLE — согласованна, то ссылкой является Word Basic, а не конкретный документ. Word Basic встроен в Word средством программирования на . Большинство директив Word Basic доступны связанной программе. Эти директивы пересылаются программе Word как методы объекта Word Basic. Фактически Word интерпретирует эти директивы, применяя их к текущему документу как к объекту.

    Метод GetObject открывает существующий объект. Метод имеет синтаксис:

    Set объектная_переменная = GetObject(Имя_файла,класс)

    где объектная_переменная и класс имеют те же значения что и для метода. Имя_файла — путь и имя файла для открытия объекта. Если расширение файла позволяет определить класс объекта, то аргумент класс можно опустить. Метод не запускает программу если она не запущена на момент выполнения метода.

    Например следующий оператор открывает таблицу COST.XLS в директории PROJ диска D:

    Set Xlsheet = GetObject(«D:\PROJ\COST.XLS», «Excell.Sheet»)

    Экспериментируя с объектами OLE и программами, вы можете столкнуться с одной проблемой — разрушение системы. При проверке вашей новой программы вы будете сталкиваться с ее крахом до тех пор пока не устраните последнюю ошибку. Каждый из этих крахов будет оставлять связь, которая будет мешать корректной работе системы. В таком случае дальнейшая работа Windows будет невозможной и придется перегрузить Windows для устранения путаницы.

    Поскольку связи OLE подвержены ошибкам, вы должны уметь определять, какая из процедур обработки ошибок необходима для предотвращения вашей программы из-за ошибок связи OLE. Процедура обработки ошибок может попробовать повторно установить связь или завершить процедуру — в зависимости от того, какая директива явилась причиной ошибки. Если вы попытаетесь установить связь повторно, то используйте счетчик, который позволит избежать зацикливания.

    Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

    Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

    Читайте также:  Windows check user rights
  • Оцените статью