亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        Delphi下利用DDE實(shí)現(xiàn)同Word的交互

        字號(hào):

        一、 引言
            Windows支持三種基本的IPC(進(jìn)程間通信)機(jī)制:動(dòng)態(tài)鏈接庫(kù)(DLL)中的共享數(shù)據(jù)段、Windows剪貼版(CliPBoard)和動(dòng)態(tài)數(shù)據(jù)交換DDE(Dynamic Data Exchange)。許多的Windows應(yīng)用程序如Microsoft Word等都宣布支持DDE技術(shù),并在程序中嵌入了DDE消息處理函數(shù)。而此類(lèi)應(yīng)用程序單在DDE技術(shù)上講大多是作為一個(gè)DDE服務(wù)器形式存在的,這就允許用戶(hù)通過(guò)自行編制的一些外圍軟件以DDE客戶(hù)的身份對(duì)其進(jìn)行連接,并通過(guò)向DDE服務(wù)器程序發(fā)送一些特定的宏命令來(lái)完成對(duì)服務(wù)器程序的動(dòng)態(tài)控制,本文就以常用的Microsoft Word為例,講述了在Delphi 編程環(huán)境下如何編制DDE客戶(hù)程序,使其動(dòng)態(tài)控制Microsoft Word的一般方法。
            二、 DDE的工作原理
            DDE顧名思義,是提供對(duì)不同程序在運(yùn)行期間實(shí)現(xiàn)對(duì)數(shù)據(jù)的動(dòng)態(tài)交換的一種通用技術(shù)。Windows消息雖然是在不同程序窗口間傳送信息的手段,但一條消息只能包含兩個(gè)參數(shù)(wParam和lParam),不能傳送較多的信息。內(nèi)存塊是存放較多信息的重要手段,但不支持全局內(nèi)存句柄的共享。DDE正是建立在Windows內(nèi)部消息系統(tǒng)、全局原子和共享全局內(nèi)存基礎(chǔ)上的一種協(xié)議,用來(lái)協(xié)調(diào)Windows應(yīng)用程序之間的數(shù)據(jù)交換和命令調(diào)用。
            DDE協(xié)議使用三級(jí)命名:服務(wù)(service)、主題(topic)和數(shù)據(jù)項(xiàng)(item)來(lái)標(biāo)識(shí)DDE所傳遞的數(shù)據(jù)單元。服務(wù)使應(yīng)用程序具有了提供給其他程序的數(shù)據(jù)交換能力,一般服務(wù)就是應(yīng)用程序的文件名,如Word的服務(wù)就是是Winword(可執(zhí)行文件是Winword.exe);主題是對(duì)服務(wù)器有意義的信息單元,對(duì)于Word文檔就是很好的主題,許多服務(wù)器都有默認(rèn)的主題System,但無(wú)法知道服務(wù)器確切有那些主題,除非查閱應(yīng)用程序的相關(guān)技術(shù)文檔。每次DDE客戶(hù)與服務(wù)程序之間的對(duì)話(huà)都是先由客戶(hù)啟動(dòng)的,所以在每次客戶(hù)啟動(dòng)之前,DDE服務(wù)器必須先投入運(yùn)行,下面是一個(gè)典型的DDE會(huì)話(huà)流程的事務(wù)組成:
            ·客戶(hù)程序自動(dòng)會(huì)話(huà),服務(wù)器程序響應(yīng)。
            ·客戶(hù)和服務(wù)器用下述方法交換數(shù)據(jù):
            ·服務(wù)器應(yīng)客戶(hù)的請(qǐng)求向客戶(hù)發(fā)送數(shù)據(jù);
            ·客戶(hù)主動(dòng)想服務(wù)器發(fā)送數(shù)據(jù);
            ·客戶(hù)要求服務(wù)器在數(shù)據(jù)修改時(shí)發(fā)送數(shù)據(jù)(熱數(shù)據(jù)連接);
            ·客戶(hù)要求服務(wù)器在數(shù)據(jù)修改后發(fā)送通知(溫?cái)?shù)據(jù)連接);
            ·在客戶(hù)的要求下,服務(wù)器執(zhí)行一個(gè)命令。
            ·由客戶(hù)或服務(wù)器中止會(huì)話(huà)。
            三、 設(shè)計(jì)思路
            首先,在開(kāi)發(fā)工具的選擇上,選擇了提供有現(xiàn)成的DDE 系列組件的 Borland Delphi 5.0。既然以Microsoft Word作為要連接的服務(wù)器,在與其建立連接之前要先設(shè)定好連接的服務(wù)與主題,由于本例只要求通過(guò)本程序控制Word的一些操作動(dòng)作,如打開(kāi)新文件、關(guān)閉文件、插入表格等等,所以可以分別設(shè)定這兩項(xiàng)為:"Winword"和"System",當(dāng)設(shè)置好連接后就可以通過(guò)Delphi提供的DDEClientConv組件的OpenLink函數(shù)打開(kāi)與這個(gè)服務(wù)的連接,剩下的工作就是向Word服務(wù)器發(fā)送宏命令,并通過(guò)組件向其發(fā)送執(zhí)行宏的命令即可,用該組件的函數(shù)ExecuteMacro來(lái)實(shí)現(xiàn)之。