信息: 如何在 Visual Basic 中使用 DDE,以与其他 Windows 程序通信

文章翻译 文章翻译
文章编号: 189498 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文介绍如何从 Visual Basic 的某个程序使用动态数据交换 (DDE)。虽然 Visual Basic 提供了通过使用 OLE 在程序之间更强大、 可靠而可靠 intercommunication,它仍支持较旧的 DDE 技术。若要链接到程序之间共享数据,您可以使用 DDE。

与其他程序中使用 OLE 是好于 Visual basic 中使用 DDE。OLE 为您提供了更好的性能比 DDE。如果程序支持 OLE 自动化,它公开的"对象模型"可用于处理程序 (通过代码) 为您完成操作。DDE 是更有用,在与较旧的应用程序可能不支持 OLE,但支持 DDE 的通信和许多 16 位程序属于此类别。

Microsoft 建议您使用 OLE,而不是 DDE 时您正在开发 Visual Basic 程序与另一个程序通信。但是,因为时间时您可能需要或想要使用 DDE 本文将介绍如何从 Visual Basic 的某个程序中使用 DDE。

更多信息

Visual Basic 可以交换信息、 命令或使用任何支持 DDE 的程序的键击的数据。DDE 链接,需要以下三个操作:
  • 程序名
  • 主题
  • 项目
程序名称是可执行文件 (.exe) 的源应用程序包括.exe 文件扩展名的文件名称。该主题描述了要交换数据的类型。该主题是特定于 DDE 源应用程序。但是,"系统"是一个通用主题中的可用于查询特定的程序中有哪些主题。项目参数是在传输的实际数据。在 Visual Basic 中的主题可能作为一项是具有一个文本框的窗体。在 Microsoft Excel 中的主题可能作为一项是在电子表格与单元格。已建立 DDE 链接,因为任何修改断开连接后,不能修改程序名称和主题。项目参数可对其进行修改以任何有效的项目在 DDE 对话期间不断开 DDE 链接的情况下。

特定于 Visual Basic,LinkTopic 属性提供程序名称和主题参数的组合。LinkTopic 属性是可用于 标签图片框,或 文本框 控件,它们可以共享通过 DDE 连接的数据。程序名称和主题参数组合使用竖线字符 (|) 作为分隔符。要创建的 Word 的 DDE 链接,作为源应用程序,以及通过使用系统主题的示例。将一个文本框的 LinkTopic 属性如下所示:
Text1.LinkTopic="WinWord|System"
当 Visual Basic 源应用程序的 DDE 链接,包含要共享控件窗体的 LinkTopic 设置为已知的名称。作为主题信息的 Visual Basic 目标程序的 LinkTopic 用于此已知的名称。例如对于访问具有 LinkTopic 被设置为"DDELink"的窗体中的数据,Visual Basic 目标程序有一个匹配控件与 LinkTopic 设置为 "程序名 |DDELink"。

LinkItem 属性对应于一个 DDE 连接中的项目参数,此属性设置为在源程序例如对于 Excel 电子表格中的"总计"单元中相应的项。LinkItem 属性设置为在目标程序中使用的控件。当 Visual Basic 窗体是在 DDE 连接源时,窗体上控件的名称是 program|topic|item 字符串所使用的目标程序中的项目参数。当 Visual Basic 用作这两个源和目标程序的目标程序 LinkItem 属性将被设置为在 Visual Basic 源应用程序中控件的名称。例如对于用作源和目标程序和一个文本框,作为项出现在源程序中名为 txtSource Visual basic,一个相应 txtData 文字框在目标程序中将具有其 LinkItem 属性设置为 txtSource
txtData.LinkItem ="txtSource"
可以建立一个连接之前,机制来更新信息需要进行设置。一个 DDE 连接中有三种类型的链接:
  • 自动
  • 手册
  • 通知
只要源被修改,将自动链接更新目标信息。手动链接要求数据被请求的目标程序,并通知通知目标程序,源数据已被更改,但实际上不会更新该信息在目标程序中的。一次自动更新一个例外是 Picturebox 控件。Visual Basic 不会自动通知 DDE 目标程序的源上的 图片框图片 属性设置窗体更改时。因为图形中的数据量可能非常大,因为它很少会使目标程序更新为在图片更改每个像素的意义上,Visual Basic 将要求您使用 LinkSend 方法明确地在一个 图片框 的内容更改时通知 DDE 目标程序。

一旦建立 DDE 链接有几种方法和可用于控制数据在源和目标程序之间的发送方式的 Visual Basic 中的事件。

方法

LinkRequest: 请求更新目标项的内容源应用程序。
LinkExecute: 将一个命令字符串发送到源应用程序。
LinkPoke: 传输到源应用程序的项控件的内容。通常,DDE 对话中的信息源中排列到的目标。但是,LinkPoke 提供目标对象能够提供源数据。
LinkSend: 传输到目标程序的 DDE 对话中的 图片框 控件的内容。

事件

LinkOpen: 正在启动 DDE 链接时发生。
LinkClose: DDE 链接终止时发生。DDE 对话中的这两个程序可能会随时终止的链接。
LinkError: 出现在 DDE 对话过程中出错时。此事件仅作为与 DDE 相关的错误发生时正在执行没有 Visual Basic 代码的结果。错误号作为参数传递。
LinkExecute: 由 DDE 对话中的目标程序发送命令串时发生。目标程序期望源应用程序执行由该字符串描述的操作。
LinkNotify: 源已更改如果目标控件的 LinkMode 属性设置为通知由 DDE 链接定义的数据时发生。

参考

有关如何创建从 Visual Basic 的 DDE 连接到其他应用程序 (如 Visual Basic、 Word 或 Excel 的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
74861客户端-服务器 Visual Basic 应用程序之间的 DDE 的示例
74862Visual Basic 和 Word 为 Windows 之间的 DDE 示例
75089从 Visual Basic windows 到 windows 的 Excel 的 DDE
MSDN 包含有关 DDE 方法、 属性和事件在 Visual Basic 6.0 中受支持的文档。在 MSDN,设置"活动子集"Visual Basic 文档来单击 索引 选项卡按钮,然后键入 DDE。包括适用于 Visual Basic 6.0 中可用的主题。

在 Visual Basic 5.0 单击 联机丛书帮助 菜单。联机丛书出现时单击在 视图 菜单上的 索引。当出现索引搜索浏览器时,键入 DDE

属性

文章编号: 189498 - 最后修改: 2003年5月13日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft Visual Basic 5.0 学习版
  • Microsoft Visual Basic 6.0 学习版
  • Microsoft Visual Basic 5.0 专业版
  • Microsoft Visual Basic 6.0 专业版
  • Microsoft Visual Basic 5.0 企业版
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
关键字:?
kbmt kbenv kbhowto KB189498 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 189498
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com