dde server window что это

Технология динамического обмена данными DDE

Дата добавления: 2014-10-02 ; просмотров: 7143 ; Нарушение авторских прав

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

Сервер DDE. Приложение, обеспечивающее возможности сервера, должно “уметь” принимать DDE сообщения и посылать данные в ответ на запросы приложений-клиентов. У одного DDE-сервера может быть один или несколько DDE-клиентов.

Сеанс DDE – активная непрерывная связь между клиентом и сервером.

Транзакция DDE – одиночный акт обмена данными в процессе сеанса.

В DDE используется трёхуровневая система адресации: service (зарегистрированный сервис, как правило, указывается приложение, предоставляющее серверные функции); topic (раздел данных, например, имя файла, или таблица базы данных); item (элемент данных, подлежащий передаче).

Если в качестве сервера DDE выступает MS Excel, эта схема выглядит следующим образом: service – «EXCEL»; topics – электронная таблица «[Книга1]Лист1»; item –ячейка «R1C2».

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

WM_DDE_INITIATE – инициализирует диалог между прикладными программами сервера и клиента;

WM_DDE_ACK – посылается в ответ на полученное сообщение;

WM_DDE_REQUEST – запрашивает у сервера значение элемента данных;

WM_DDE_POKE – посылает значение элемента данных серверу;

WM_DDE_ADVISE – устанавливает постоянную связь между сервером и клиентом;

WM_DDE_DATA – посылает значение элемента данных клиенту;

WM_DDE_EXECUTE – посылает строку прикладной программе-серверу, которая должна выполнить ее как последовательность команд;

WM_DDE_UNADVISE – завершает постоянную связь между сервером и клиентом;

WM_DDE_TERMINATE – завершает диалог.

Посылка сообщений – это нижний уровень обмена данными между DDE-клиентом и DDE-сервером. На верхнем уровне DDE-обмен реализован в виде функций, содержащихся в динамической библиотеке DDEML.DLL.

С целью расширения возможностей стандартного протокола DDE на локальную сеть предложен NetDDE. Он позволяет приложениям, запущенным на компьютерах, объединенных в локальную сеть, вести DDE-обмен.

Источник

dde server window ошибка приложения

Я посмотрел на запросы на SO, которые относятся к подобным ошибкам — но не нашли ничего до сих пор, чтобы помочь с этой конкретной проблемы у меня возникли с orcascript, который я бегу под PowerBuilder9.0. Сценарий косатки подключается к поставщику услуг SCC, делает полную цель обновление, а затем предполагается построить ех. Он никогда не доберется до последнего шага, хотя.

Журнал не очень информативный и просто говорит об этом на момент сбоя: PBORCA_SccRefreshTarget. Полный Rebuild Вызов cm_rebuild_application (CM_REBUILD_FULL) Несмотря на то, что сценарий в некотором роде в этом выше стадии, он выходит и бросает ошибку сервера DDE.

Может кто-то помочь мне понять это? Я едва знаю основу ПБА, и цель этого упражнения преобразовать сборку IDE на основе, что я унаследованная, в orcascript сборку, так что я могу запустить сборку неконтролируемой.

EDIT: Я в настоящее время работает монитор производительности на предложение ниже, и вот что я вижу процесс orcascr9.exe в точке отказа.

Результат: BUFFER OVERFLOW

Путь: C:. S 00019 MORENUMBERSblah.pbl

Таким образом, я не слышал, прослеживание от того, является ли успешным в IDE или не строить, так что я буду делать предложения на предположении о том, что IDE не может тоже.

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

Вы можете попытаться определить объект сборки умирает на. Одним из подходов являются взглянуть на последнее изменение библиотеки. Объект сборки умирает от того, будет иметь более старую дату компиляции, чем строить, как будет любой, что сборка не дошли до. Это может помочь вам узкие вещи несколько вероятных подозреваемых. При отсутствии контроля источника я бы предложил перетасовки половины нескомпилированных объектов в то время, на другой PBL, пока сборка не терпит неудачу на другой PBL. Затем вы начинаете движущиеся объекты из последней партии в другую сторону. Вы можете скопировать PBL, и эксперимент с регулярным без SCC построить в orcascript, но это очень много дополнительной работы, и если не-SCC строительные работы, вы будете иметь большую тайну, а не решения.

Я просмотрел запросы на SO, относящиеся к подобным ошибкам, но пока ничего не нашел, чтобы помочь с этой конкретной проблемой, с которой я сталкиваюсь, с orcascript, который я запускаю под Powerbuilder9.0. Orca script подключается к поставщику услуг SCC, выполняет полное обновление цели, а затем, как предполагается, создает exe. Однако он никогда не доходит до последнего шага.

Читайте также:  российская империя с какой буквы пишется империя

Журнал не очень информативен и просто говорит об этом в момент сбоя: PBORCA_SccRefreshTarget. Полная перестройка Вызов cm_rebuild_application (CM_REBUILD_FULL) В то время как script находится в некотором роде на этом выше шаге, он выходит и выдает ошибку сервера DDE.

Может кто-нибудь помочь мне понять это? Я просто не знаю основ PB, и цель этого упражнения состоит в том, чтобы преобразовать сборку на основе IDE, которую я унаследовал, в сборку orcascript, чтобы я мог запускать сборку без контроля.

EDIT: Теперь я запускаю монитор производительности за каждое предложение, и вот что я вижу для процесса orcascr9.exe в момент сбоя.

Источник

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

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

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

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

Word for Windows WinWord

Windows Program Manager ProgMan

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

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

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

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

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

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

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

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

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

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

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 (канал, элемент, данные)

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

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

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

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

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

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

Application.DDEPoke ChannelNum, “BookMark1”, Result

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

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

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

Технология OLE

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

Читайте также:  какой курс польской злоты к рублю

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

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

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

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

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

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

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

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

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

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

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

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

Set Xlsheet = createObject(«Excell.Sheet»)

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

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

Set WordSheet = createObject(«Word.Basic»)

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

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

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

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

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

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.

Источник

Использование Microsoft Access в качестве сервера DDE

Область применения: Access 2013, Office 2013

Microsoft Access поддерживает динамический обмен данными (DDE) в качестве приложения назначения (клиента) или приложения-источника (сервера). Например, такое приложение, как Microsoft Word клиент, может запрашивать данные через DDE из базы данных Microsoft Access, которая действует как сервер.

Если вам нужно управлять объектами Microsoft Access из другого приложения, возможно, потребуется использовать автоматизацию.

Диалог DDE между клиентом и сервером устанавливается по определенной теме. Темой может быть либо файл данных в формате, поддерживаемом серверным приложением, либо тема System, которая поставляет сведения о самом приложении сервера. После начала беседы по определенной теме может быть передан только элемент данных, связанный с этой темой.

Например, предположим, что вы Microsoft Word и хотите вставить данные из определенной базы данных Microsoft Access в документ. Вы начинаете беседу dDE с Microsoft Access, открыв канал DDE с функцией DDEInitiate и указав в качестве темы имя файла базы данных. Затем можно передать данные из этой базы данных в Microsoft Word по этому каналу.

Как сервер DDE Microsoft Access поддерживает следующие темы:

Имя базы данных (тема базы данных)

Имя таблицы (тема таблицы)

Имя запроса (тема запроса)

Строка microsoft Access SQL (sqlstring topic)

После наладки беседы с DDE можно использовать заявление DDEExecute для отправки команды от клиента в приложение-сервер. В качестве сервера DDE Microsoft Access распознает любую из следующих команд:

Имя макроса в текущей базе данных.

Любое действие, которое можно выполнить в Visual Basic с помощью одного из методов объекта DoCmd.

Действия OpenDatabase и CloseDatabase, которые используются только для операций DDE. (Пример использования этих действий см. в примере далее в этой теме.)

При указании макрос действия в качестве заявления DDEExecute действие и любые аргументы следуют синтаксису объекта DoCmd и должны быть заключены в скобки ([]). Однако приложения, поддерживают DDE, не распознают внутренние константы в операциях DDE. Кроме того, строки аргументы должны быть заключены в кавычках («») если строка содержит запятую. В противном случае кавычка не требуется.

Клиентские приложения могут использовать функцию DDERequest для запроса текстовых данных из серверного приложения по открытому каналу DDE. Или клиент может использовать заявление DDEPoke для отправки данных в приложение сервера. После завершения передачи данных клиент может использовать заявление DDETerminate для закрытия канала DDE или DDETerminateAll для закрытия всех открытых каналов.

Читайте также:  core биопсия что это

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

В следующем примере показано, как создать процедуру Microsoft Word с помощью Visual Basic microsoft Access в качестве сервера DDE. (Для работы в этом примере необходимо запускать Microsoft Access.)

В следующих разделах приводится информация о допустимых разделах DDE, поддерживаемых Microsoft Access.

Тема «Система»

Тема System — это стандартная тема для всех Windows приложений На основе Microsoft. Он поставляет сведения о других темах, поддерживаемых приложением. Чтобы получить доступ к этой информации, код должен сначала вызвать функцию DDEInitiate с аргументом темы, а затем выполнить заявление DDERequest с одним из следующих аргументов элемента.

Список элементов, поддерживаемых темой System в Microsoft Access.

Список форматов, которые Microsoft Access может скопировать на буфер обмена.

Список всех открытых баз данных.

В следующем примере показано использование функций DDEInitiate и DDERequest в разделе System:

Тема базы данных

Вы не можете использовать DDE для запроса информационного файла группы Microsoft Access.

Тема базы данных поддерживает следующие элементы.

Источник

[FIX] ‘Окно сервера DDE: Ошибка приложения Explorer.exe’

Некоторые пользователи Windows сталкиваются с окном сервера DDE: Explorer.exe всякий раз, когда они пытаются открыть проводник в Windows 10. В большинстве случаев всплывающее окно возвращается, когда пользователь закрывает, но исчезает, пока проводник файлов закрыт.

Как оказалось, существует несколько разных причин, которые могут вызвать эту ошибку. Вот краткий список потенциальных виновников:

Теперь, когда вы знаете все потенциальные сценарии, которые могут быть ответственны за появление окна сервера DDE: Explorer.exe, вот список методов, которые другие затронутые пользователи успешно использовали для решения проблемы.

Метод 1. Удаление аудиодрайверов Realtek (если применимо)

Имейте в виду, что как только вы это сделаете, Windows переключится на общие драйверы, включенные по умолчанию в Windows 10, поэтому на вашем компьютере по-прежнему будет звук.

Если вы попали в этот сценарий и активно используете Realtek Audio Service, следуйте приведенным ниже инструкциям, чтобы удалить аудиодрайверы и переключиться на общие драйверы.

Вот что вам нужно сделать:

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

Метод 2: запуск сканирования CHKDSK

Как оказалось, эта конкретная ошибка окна сервера DDE: Explorer.exe также может быть связана с логической ошибкой, связанной с вашим жестким диском или SSD. Иногда диспетчер файлов выдает такие ошибки, когда возникает несогласованность блока, который не может быть прочитан.

Если этот сценарий применим, вы сможете решить эту проблему, запустив утилиту CHKDSK, чтобы исправить или заменить поврежденные сектора неиспользуемыми эквивалентами.

Если вы еще этого не сделали, вы можете запустить сканирование CHKDSK с помощью утилиты проверки диска.

Выполнение сканирования CHKDSK

Примечание: чтобы максимизировать свои шансы на успех, вы должны убедиться, что окно CMD, которое вы используете для запуска команды, открыто с правами администратора.

После завершения сканирования CHKDSK перезагрузите компьютер и посмотрите, будет ли проблема устранена после завершения следующего запуска.

Если вы все еще сталкиваетесь с тем же окном сервера DDE: Explorer.exe, перейдите к следующему потенциальному исправлению ниже.

Метод 3: перевод панели задач в режим рабочего стола

Если ни одно из возможных исправлений, описанных выше, не позволило вам решить проблему, существует один обходной путь, который многие затронутые пользователи успешно использовали, чтобы скрыть появление новых экземпляров окна сервера DDE: Explorer.exe.

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

Несколько затронутых пользователей успешно использовали этот метод для устранения симптомов этой проблемы.

Если вы ищете пошаговые инструкции, следуйте приведенным ниже инструкциям:

Если вы по-прежнему сталкиваетесь с той же ошибкой окна сервера DDE: Explorer.exe, перейдите к следующему потенциальному исправлению ниже.

Метод 4: обновление каждого компонента Windows

Если ни одно из других возможных исправлений, описанных выше, не помогло в вашем случае, последнее, что вы можете сделать, это убедиться, что каждый компонент, используемый вашей установкой Windows, обновлен, чтобы каждый поврежденный экземпляр был удален. Многие затронутые пользователи подтвердили, что это единственное, что позволило им решить проблему.

Итак, когда дело доходит до сброса каждого компонента Windows, у вас действительно есть 2 жизнеспособных варианта:

Источник

Сказочный портал