資訊: 如何在 Visual Basic 中使用 DDE 來與其他 Windows 程式通訊

文章翻譯 文章翻譯
文章編號: 189498 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何從 Visual Basic 程式中使用動態資料交換 (DDE)。雖然 Visual Basic 提供了更強大、 穩定及可靠 intercommunication 藉由使用 OLE 的程式間,它仍然支援較舊的 DDE 技術。您可以使用 DDE 來連結到及共用程式之間的資料。

通訊與其他程式使用 OLE 會是比較好的作法比 Visual Basic 中使用 DDE。OLE 會提供較佳的效能比 DDE。如果程式支援 OLE 自動化,它所公開的 「 物件模型 」 可以讓您管理程式 (通過的程式碼) 來為您完成動作。DDE 是在與較舊的程式可能不支援 OLE,但並支援 DDE,通訊更有用,而且許多 16 位元程式會落入這個類別。

Microsoft 建議您先使用您開發您的 Visual Basic 程式時,另一個程式與通訊 OLE,而不是 DDE。不過,因為有的時間時您可能需要,或想使用 DDE,本文將告訴您,如何使用 DDE 從 Visual Basic 程式。

其他相關資訊

Visual Basic 可以交換資訊]、 [命令] 或 [與任何支援 DDE 的程式的按鍵等的資料。DDE 連結需要下列三件事:
  • 程式名稱
  • 主題
  • 項目
程式名稱是可執行檔 (.exe) 來源程式除去.exe 檔案副檔名的檔案名稱。在主題說明所交換的資料型別。主題是 DDE 來源應用程式特有的。但是,「 系統 」 是一個可以讓您查詢什麼主題是特定的程式中可用的通用主題。項目的參數是實際所傳輸的資料。在 Visual Basic 中某個主題可能為一個項目是具有文字方塊的表單。在 Microsoft Excel 中主題可能為一個項目是以一個儲存格的試算表。無法修改程式的名稱及主題,一旦 DDE 連線已經建立,因為任何修改中斷連線。項目的參數可以修改任何有效的項目 DDE 交談期間保持 DDE 連結的情況下。

Visual Basic 的特定,LinkTopic 屬性提供程式名稱及主題參數的組合。LinkTopic 屬性是可供 標籤PictureBoxTextBox 控制項可以共用資料透過 DDE 連線。程式名稱及主題參數結合以縱線字元 (|) 為分隔符號。例如,作為來源程式和使用 [系統] 主題,與 Microsoft Word 建立 DDE 連結。在文字方塊的 [LinkTopic 屬性就會是:
Text1.LinkTopic= WinWord|system"
當 Visual Basic 原始程式的 DDE 連結 LinkTopic 其中包含要共用控制項之表單設定為已知的名稱。在 LinkTopic 的 Visual Basic 目的地程式中使用此已知的名稱,做為主題資訊。比方說從具有設定為 [DDELink"LinkTopic 表單存取資料,Visual Basic 目的地程式會具有相符控制項與設定為 "程式名稱 |DDELink 」 一個 LinkTopic

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 目的地程式 圖片] 屬性設定值,為在來源上的 PictureBox 表單變更時。由於可能非常大的圖形中的資料量,因為它很少讓每個像素,在 [圖片] 變更為更新目的程式的有意義,Visual Basic 會需要您使用 LinkSend 方法,來明確地通知 DDE 目的地程式,當 PictureBox 內容變更時。

一旦建立 DDE 連結有幾個方法和事件可用來控制如何在來源與目的地程式之間傳送資料的 Visual Basic 中。

方法

LinkRequest: 要求原始程式來更新目的項目內容。
LinkExecute: 將命令字串傳送至原始程式。
LinkPoke: 將項目控制項的內容傳送到原始程式。通常,DDE 交談中的資訊從來源流,到目的地。不過,LinkPoke 提供來提供資料給來源能力目的地物件。
LinkSend: 將 PictureBox 控制項的內容傳輸至目的地程式在 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用戶端-伺服器 DDE Visual Basic 應用程式之間的範例
74862Visual Basic 與 Word 的 Windows 之間的 DDE 範例
75089從 Windows 的 Visual Basic DDE 至 Windows 的 Excel
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 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
關鍵字:?
kbmt kbenv kbhowto KB189498 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本: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