![]() |
|
| 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
![]() |
||
|
||
|
|||||
在 PowerBuilder 7.0中应用DDE技术一例 | |||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-8-16 ![]() |
|||||
在使用PowerBuilder7.0开发用户自己的应用程序时,需要用到一些在Windows操作系统环境中已有的文件格式或操作功能,如果一切从头开始,不仅浪费大量的时间和精力,而且完成的功能也没有Windows中已有的完善。如何利用Windows中已有的大量的应用程序和应用程序开发组件呢?Windows提供了两种用于应用程序继承的方法:DDE和OLE。 DDE(动态数据交换)在Windows操作系统是一种基于消息的协议,用来在不同的应用程序之间交换信息。在PowerBuilder中不仅提供了一套用来包装Windows函数的DDE函数,而且提供了一种易于实现的接口。 下面以在PowerBuilder7.0下开发的应用程序中调用Microsoft Word编辑文本文件为例说明如何调用Windows中的应用程序: 在PowerBuilder7.0中利用DDE的方法调用Windows程序相当于把Windows看成服务器,而把在PowerBuilder7.0下开发的应用程序看成客户机,在客户机中调用服务器程序可用Run函数。该函数的语法为: Run ( string {, windowstate } ) 其中string是被调用的应用程序,其中还可以包含被调用的应用程序运行所需的参数;windowstate为可选项,表示被调用的应用程序的启动状态,可取值有:Maximized!(最大化),Minimized!(最小化)和Normal!(正常)。 如果该函数执行成功则返回1,执行失败则返回-1,如果赋给该函数的参数为NULL,则返回NULL。 使用OpenChannel函数在两个应用程序之间建立连接。该函数的语法为: OpenChannel ( applname, topicname {, windowhandle } ) 其中applname表示被调用的应用程序名。topicname表示被调用的应用程序的主题名,如在Microsoft Word中可以取值为已打开的文档名。windowhandle为可选项,表示被调用的应用程序的窗口句柄。 如果该函数执行成功则返回建立的通道的句柄,执行失败则返回-1,如果通道句柄为NULL,则返回-9。 下面是调用Microsoft Word的代码,如果安装了Microsoft Word,则运行winword.exe,否则运行notepad.exe: int vi_rtn string vs_prog,vs_path // 从注册表中获取Microsoft Word的安装路径,保存在vs_path中 RegistryGet("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe","Path",RegString!,vs_path) //判断是否安装了Microsoft Word if vs_path<>"" then // vs_prog保存winword的有关参数 //如果被调用的应用程序有运行参数,参数和应用程序名之间要有空格 vs_prog = vs_path+"winword.exe" //启动winword vi_rtn = run(vs_prog,normal!) if vi_rtn = -1 then MessageBox("错误","无法运行程序!") return else //建立通道 OpenChannel("winword","c:\my documents\example.doc") end if else vs_prog = "c:\windows\notepad.exe" vi_rtn = run(vs_prog,normal!) if vi_rtn = -1 then MessageBox("错误","无法运行程序!") return else OpenChannel("notepad","c:\my documents\example.txt") end if end if
|
|||||
文章录入:admin 责任编辑:admin | |||||
【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|