国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

在PowerBuilder7.0中應(yīng)用DDE技術(shù)一例

2024-07-21 02:13:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
 
在使用powerbuilder7.0開(kāi)發(fā)用戶自己的應(yīng)用程序時(shí),需要用到一些在windows操作系統(tǒng)環(huán)境中已有的文件格式或操作功能,如果一切從頭開(kāi)始,不僅浪費(fèi)大量的時(shí)間和精力,而且完成的功能也沒(méi)有windows中已有的完善。如何利用windows中已有的大量的應(yīng)用程序和應(yīng)用程序開(kāi)發(fā)組件呢?windows提供了兩種用于應(yīng)用程序繼承的方法:dde和ole。

dde(動(dòng)態(tài)數(shù)據(jù)交換)在windows操作系統(tǒng)是一種基于消息的協(xié)議,用來(lái)在不同的應(yīng)用程序之間交換信息。在powerbuilder中不僅提供了一套用來(lái)包裝windows函數(shù)的dde函數(shù),而且提供了一種易于實(shí)現(xiàn)的接口。

下面以在powerbuilder7.0下開(kāi)發(fā)的應(yīng)用程序中調(diào)用microsoft word編輯文本文件為例說(shuō)明如何調(diào)用windows中的應(yīng)用程序:

在powerbuilder7.0中利用dde的方法調(diào)用windows程序相當(dāng)于把windows看成服務(wù)器,而把在powerbuilder7.0下開(kāi)發(fā)的應(yīng)用程序看成客戶機(jī),在客戶機(jī)中調(diào)用服務(wù)器程序可用run函數(shù)。該函數(shù)的語(yǔ)法為:

run ( string {, windowstate } )

其中string是被調(diào)用的應(yīng)用程序,其中還可以包含被調(diào)用的應(yīng)用程序運(yùn)行所需的參數(shù);windowstate為可選項(xiàng),表示被調(diào)用的應(yīng)用程序的啟動(dòng)狀態(tài),可取值有:maximized!(最大化),minimized!(最小化)和normal!(正常)。

如果該函數(shù)執(zhí)行成功則返回1,執(zhí)行失敗則返回-1,如果賦給該函數(shù)的參數(shù)為null,則返回null。

使用openchannel函數(shù)在兩個(gè)應(yīng)用程序之間建立連接。該函數(shù)的語(yǔ)法為:

openchannel ( applname, topicname {, windowhandle } )

其中applname表示被調(diào)用的應(yīng)用程序名。topicname表示被調(diào)用的應(yīng)用程序的主題名,如在microsoft word中可以取值為已打開(kāi)的文檔名。windowhandle為可選項(xiàng),表示被調(diào)用的應(yīng)用程序的窗口句柄。

如果該函數(shù)執(zhí)行成功則返回建立的通道的句柄,執(zhí)行失敗則返回-1,如果通道句柄為null,則返回-9。

下面是調(diào)用microsoft word的代碼,如果安裝了microsoft word,則運(yùn)行winword.exe,否則運(yùn)行notepad.exe:

int vi_rtn

string vs_prog,vs_path

// 從注冊(cè)表中獲取microsoft word的安裝路徑,保存在vs_path中

registryget("hkey_local_machine oftware/microsoft/windows/currentversion/app paths/winword.exe","path",regstring!,vs_path)

//判斷是否安裝了microsoft word

if vs_path<>"" then

// vs_prog保存winword的有關(guān)參數(shù)

//如果被調(diào)用的應(yīng)用程序有運(yùn)行參數(shù),參數(shù)和應(yīng)用程序名之間要有空格

      vs_prog = vs_path+"winword.exe"

//啟動(dòng)winword

      vi_rtn = run(vs_prog,normal!)

  if vi_rtn = -1 then

        messagebox("錯(cuò)誤","無(wú)法運(yùn)行程序!")

     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("錯(cuò)誤","無(wú)法運(yùn)行程序!")

     return

  else

        openchannel("notepad","c:/my documents/example.txt")

  end if

end if

 
用類似的方法就能在用powerbuilder7.0開(kāi)發(fā)的用戶自己的應(yīng)用程序中調(diào)用windows系統(tǒng)中包含的大量應(yīng)用程序,能夠大大提高用戶開(kāi)發(fā)的效率,提升所開(kāi)發(fā)的應(yīng)用程序的性能。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 清远市| 六盘水市| 读书| 习水县| 扶绥县| 丹东市| 和政县| 山西省| 永川市| 南陵县| 留坝县| 二手房| 锡林浩特市| 蓝田县| 宁南县| 历史| 德阳市| 陕西省| 邓州市| 延寿县| 紫阳县| 五常市| 南漳县| 四平市| 沅江市| 东乌| 太康县| 双柏县| 达尔| 天水市| 通州区| 抚州市| 长沙县| 莱芜市| 岳西县| 松桃| 沙洋县| 西昌市| 务川| 永和县| 武陟县|