VB中应用DDE -- 2

VB中应用DDE -- 2,第1张

概述介绍启动 Microsoft Visual Basic 目标应用程序和 Visual Basic 源应用程序之间的动态数据交换 (DDE) 的必要步骤。  创建一个 Visual Basic 应用程序作为一个 DDE 源。 创建 Visual Basic 应用程序,以用作 DDE 目标。 在目标应用程序和 $ 源应用程序之间启动手动 DDE 链接 (根据请求从目标更新的信息)。 使用 LinkRe

介绍启动 Microsoft Visual Basic 目标应用程序和 Visual Basic 源应用程序之间的动态数据交换 (DDE) 的必要步骤。

创建一个 Visual Basic 应用程序作为一个 DDE 源。 创建 Visual Basic 应用程序,以用作 DDE 目标。 在目标应用程序和 $ 源应用程序之间启动手动 DDE 链接 (根据请求从目标更新的信息)。 使用 linkRequest 更新源应用程序中的信息在目标应用程序中的信息。 在目标应用程序和 $ 源应用程序之间启动自动 DDE 链接 (来自源自动更新到的目标的信息)。 使用 linkPoke 从目标应用程序到源应用程序发送信息。 更改之间自动和手动 linkMode 属性。

创建源应用程序

在 Visual Basic 中开始新项目。默认情况下创建 Form1。 Form1 的标题属性改为源。 在 Form1 linkMode 属性更改为 1 的源。 在 Form1 上放置在文本框中 (文本 1)。 名为源保存在窗体和项目。 从文件菜单中选择生成 EXE 文件。生成 EXE 文件对话框中选择确定以接受 SOURCE.EXE 为 EXE 文件的名称。

创建目标应用程序

从文件菜单中选择新建项目。默认情况下创建 Form1。 Form1 的标题属性改为目标。 将下列控件添加到 Form1,并为它们指定属性指示:
   Default name   Caption            name   -----------------------------------------   Text1          (Not applicable)   Text1   Option1        Manual link        Manuallink   Option2        automatic link     automaticlink   Command1       Poke               Poke   Command2       Request            Request						
下面的代码添加到 Form1 的常规声明部分:
   Const autoMATIC= 1   Const MANUAL = 2   Const NONE = 0   '(NOTE:  For Visual Basic version 1.0,also add the following   '        constants:   'Const True = -1   'Const False = 0						
下面的代码添加到 Form1 的 Load 事件过程:
   Sub Form_Load ()      'This procedure will start the VB source application.      z% = Shell("SOURCE",1)      z% = DoEvents()   'Causes windows to finish processing Shell command.      Text1.linkMode = NONE   'Clears DDE link if it already exists.      Text1.linktopic = "Source|Form1"   'Sets up link with VB source.      Text1.linkItem = "Text1"           'Set link to text Box on source.      Text1.linkMode = MANUAL            'Establish a manual DDE link.      Manuallink.Value = TRUE            'Sets appropriate option button.   End Sub						
下面的代码添加 Click 事件过程中的 Manuallink:
   Sub Manuallink_Click ()      Request.Visible = TRUE    'Make request button valID.      Text1.linkMode = NONE     'Clear DDE link.      Text1.linkMode = MANUAL   'Reestablish new linkMode.   End Sub						
下面的代码添加到 Clink 事件过程中的 automaticlink:
   Sub automaticlink_Click ()      Request.Visible = FALSE   'No need for button with automatic link.      Text1.linkMode = NONE     'Clear DDE link.      Text1.linkMode = autoMATIC   'Reestablish new linkMode.   End Sub						
将下面的代码添加到请求的 Click 事件过程:
   Sub Request_Click ()      'With a manual DDE link,this button will be visible,and when      'selected it will request an update of information from the source      'application to the destination application.      Text1.linkRequest   End Sub						
将下面的代码添加到发送的 Click 事件过程:
   Sub Poke_Click ()      'With any DDE link,and when it's      'selected,will poke information from the destination application      'into the source application.      Text1.linkPoke   End Sub	

运行 Visual Basic 目标应用程序

选择下列选项之一:
从该 VB.EXE 运行 Visual Basic 目标应用程序通过跳过下面的步骤 4 到的环境。

保存应用程序。然后创建一个.exe 文件,并通过 $ 以下面的步骤 1 开始来从 windows 运行它。

从文件菜单中选择保存,并保存窗体和项目名称的目标。 从文件菜单中选择生成 EXE 文件,并为其指定名称 DEST.EXE。 退出 Visual Basic 环境 (VB.EXE)。 从 windows 如果它是一个.exe 文件或从 VB.EXE 环境,请运行该应用程序。 Form1 的目标应用程序将加载,将自动启动源应用程序。

试用 Visual Basic 应用程序之间的 DDE

请尝试在源应用程序的文本框中键入一些文本。然后单击请求按钮。文本出现在目标应用程序的文本框中。 单击自动链接按钮,然后键入到源应用程序的文本框中的更多的文本。在目标应用程序的文本框中,文本将自动更新。 目标应用程序的文本框中键入一些文本。然后单击发送按钮将文本发送到源应用程序的文本框中。

VB应用程序中用DDE功能开发autoCADforwindows

结合实例介绍了用VB开发autoCAD的途径与方法。 一、直接利用DDE功能开发   DDE是windows的强大功能之一,它可以使应用程序自动地接收由其它应用程序发送来的数据,当传送端的数据有变化时,接收端的数据也会随之改变,也可将命令或键盘输入传递给其它程序,实现远程控制。   在VB编程环境中,创建应用程序的方法很简单,首先是设计用户界面,也就是在空白窗体中放入所需要的控件,如命令按钮,单选钮,文本框,标签,图片框等,然后针对各控件上要发生的事件(如鼠标单击,鼠标移动等)书写事件过程,最后将编写的应用程序运行,调试,生成执行文件即可。VB中能和其它Window应用程序建立DDE通道的控件有文本框,标签和图片框。下面结合简单实例,说明VB应用程序与autoCAD间建立DDE通道和交换数据的方法。   在VB中启动一个新项目,参见图(1)建立窗体,其中“建立链接”,“直线”,“标注”,“退出”为命令按钮,标有“Text1”的为文本框,用于建立DDE通道,并输入下面的事件代码。  OptionExplicit  PrivateSubcmdline_Click()'画直线   Text1.linkExecute"[^3^3line3,38,8^3]"  EndSub  PrivateSubcmdText_Click()'标注文字   Text1.linkExecute"[^3^3text10,10190autoCAD!^10]"  EndSub  PrivateSubcmdlink_click()'建立链接   Text1.linkMode=0   Text1.linktopic="autocad.dde|system"   Text1.linkMode=2  EndSub  PrivateSubcmdExit_click()'退出   End  EndSub   运行此应用程序,注意在运行前,一定要先加载autoCAD。单击“建立链接”按扭,cmdlink_Click()过程被执行,执行时设置文本框Text1的linktopic和linkMode的属性,完成VB应用程序与autoCAD间DDE通道的建立。linktopic属性用于通知autoCAD由谁来提供数据,它被管道符“|”分成两部分,第一部分“autoCAD.DDE”为应用程序名,第二部分“System”是通讯的主题。linkMode属性用于切实建立链接,在linkMode=0时,表示关闭以前的DDE通道,在linkMode=2时,表示以手动模式激活DDE通道。   在完成DDE链接后,VB应用程序就可以与autoCAD间进行数据交换或命令传送了。单击“直线”按扭,cmdline_Click()过程被执行,应用程序通过linkExecute方法向autoCAD发送命令,在autoCAD中以点(3,3)和(8,8)为端心,画一条直线。语句中的^3相当于autoCAD中的取消键Ctrl C,空格相当于autoCAD中的回车键。单击“标注”按扭,执行cmdText_Click()过程,可在autoCAD中显示以(10,10)为基点,高为1,旋转角度为90的字符串“autoCAD!”。语句中的^10相当于autoCAD中的回车键,在标注文字时不能用空格代替回车键。   根据需要,可用上面的方法传送autoCAD的其它命令,实现对autoCAD的开发。 二、通过调用VBADS开发   上面介绍了在VB应用程序中直接利用DDE与autoCAD作用实现开发的方法,此方法要求用户自己建立与autoCAD间的DDE通道,此外,我们还可以通过调用VBADS函数对autoCAD进行开发。在VBADS函数库中已有专门的函数负责建立应用程序与autoCAD间的DDE通道,而不需用户亲自建立,较为方便。另外,VB应用程序还可以通过VBADS函数向autoCAD发送数据和命令,同时也可以利用VBADS函数的返回值来获得autoCAD的数据,实现对autoCAD更深入的开发。   为了利用autoCAD的VBADS函数建立VB的应用程序,autoCAD提供了几个VBADS支撑文件,这些文件除DDEBAS.EXE和ACADVB.DLL存放在C:\ACADWIN子目录外,其余都存放在C:\ACADWIN\VB\NEW子目录中。文件如下:   1.DDEBAS.EXE-ADS/DDE服务者,为保证VB于autoCAD间正常通信,此命令必须首先在autoCAD中用XLOAD命令加载运行。   2.ACADVB.DLL-VBADS动态连接库,在运行VB应用程序前,应将其拷到C:\windows\SYstem\子目录下。   3.GLOBAL.BAS-VBADS应用程序中所需要使用的全局变量定义文件。   4.ADSFUNCS.BAS-VBADS函数库,可以在VB应用程序中直接调用。   5.ADSFUNCS.FRM-包含有应用程序和autoCAD间建立DDE链接的窗体文件。下面结合具体的例子,说明利用VBADS函数开发应用程序的方法。[HJ]   启动VB,打开C:\ACADWIN\VB\NEW\NEWPROJ.MAK项目文件,参见图[2]建立新窗体,并输入如下的事件代码。  OptionExplicit  PrivateSubForm_Load()   DDE_TIMEOUT=-1 '等待DDE事件   txtX.Text=5 '圆心,半径的隐含值   txtY.Text=5   txTradius=3  EndSub  PrivateSubcmdCircle_Click() '画圆过程   DimretAsInteger   DimptAsads_point '定义Ads点类型   DimRadiusAsDouble   DimApndllAsApndLLType '定义增加链表类型   DimResbufAsResbufType '定义结果缓冲器   pt.X=val(Trim(txtX.Text)) '给圆心,半径赋值   pt.Y=val(Trim(txtY.Text))   Radius=val(Trim(txTradius.Text))   ret=ads_newrb(10,Resbuf) '建立新的结果缓冲器   Resbuf.hResbuf=0   Apndll.apType=RTSTR '说明链表类型为字符串   Apndll.apString="circle" Chr$(0) '链表赋值   ret=ApndLLNode(Resbuf,Apndll) '增加链表到结果缓冲器   Apndll.apType=RTPOINT   Apndll.apPoint=pt   ret=ApndLLNode(Resbuf,Apndll)   Apndll.apType=RTREAL   Apndll.apReal=Radius   ret=ApndLLNode(Resbuf,Apndll)   Apndll.apType=RTNONE '链表结束值类型   ret=ApndLLNode(Resbuf,Apndll)   ret=ads_cmd(Resbuf) '执行结果缓冲器的命令   ret=ads_relrb(Resbuf) '释放结果缓冲器   EndSub PrivateSubcmdExit_Click() '退出过程   End  EndSub   在应用程序运行前,必须首先运行autoCAD,并用命令(XLOAD"DDEBAS")加载DDEBAS.EXE。在上面的应用程序中,除语句DDE_TimeOut=-1外,没有其它涉及建立DDE通道的语句,因为应用程序与autoCAD间建立DDE通道所需要的代码已保存在VBADS函数库中,打开支撑文件adsfuncs.bas,可以发现SubOPENDDE()过程,它负责VB应用程序与autoCAD间DDE通道的建立,所以用户在开发应用程序时,只管调用VBADS函数即可。例子中的cmdCircle_Click()过程,是在VB4.0编程环境通过调用VBADS函数开发的,运行程序后在文本框中输入半径和圆心的值,单击“画图”按扭,即可在autoCAD中得到所需的圆。->

总结

以上是内存溢出为你收集整理的VB中应用DDE -- 2全部内容,希望文章能够帮你解决VB中应用DDE -- 2所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272350.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存