六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

如何使用.net設置ddeml?

[摘要]dde是為了實現進程間動態的數據交換,適合于兩個程序之間的數據交換頻率較大的情況,也就是交換實時數據。ddeml類庫已經實現了對dde的包裝,并且操作起來很方便。本人使用的便是ddeml庫。我的任務是使用dde來將實時數據發送的excel,首先創建一個dde服務器(如:serv1),注冊幾個主題(...

dde是為了實現進程間動態的數據交換,適合于兩個程序之間的數據交換頻率較大的情況,也就是交換實時數據。ddeml類庫已經實現了對dde的包裝,并且操作起來很方便。本人使用的便是ddeml庫。

我的任務是使用dde來將實時數據發送的excel,首先創建一個dde服務器(如:serv1),注冊幾個主題(如: topic1)。然后打開excel,選擇一個cell單元,往里面輸入=serv1 topic1!'aaaaa',dde服務器就會進行響應,根據主題和item讀取一個及時數據,返回到當前的單元格。這樣一來,我就可以定制一張excel表格,里面放上我想要的數據,這些數據始終是最新的。

實現的步驟如下

1、導入所有所需的ddeml的api函數和常量

2、初始化dde對象

3、注冊一個服務,并申請幾個主題(topic)字符串

4、編寫回調函數中的消息處理程序

5、編寫相應消息進行取值的部分

要實現這一點,需要克服幾個技術問題

 1、受委托的回調函數的使用方法
 2、數據回傳到excel中的格式
 3、消息處理過程
 
首先講述問題3,
 當用戶往excel敲進公式時,ddeserver就會有響應,它會記下用戶公式的各部分。
 然后去查找實時信息,返回一個值,這個值就是要添入到當前cell中的值。
 取到值后,調用ddeml的DdePostAdvise函數,它會激發回調函數的XTYP_ADVREQ消息
 該消息中調用DdeCreateDataHandle函數,把這個新的值放回對應的cell中。
 
 注意:DdePostAdvise的調用并不一定馬上觸發XTYP_ADVREQ消息,該函數內部使用PostMessage,
 而不是sendMessage,系統會收集一些XTYP_ADVREQ消息一并處理,這時你就要區分那個cell對應那個值了。這個問題不難解決,你自己想辦法吧。
 
講述問題1,
 dde初始化需要調用一個接受委托的回調函數
     Public Declare Function DdeInitialize Lib "user32" Alias "DdeInitializeA" (ByRef pidInst As Integer, ByVal pfnCallback As DDECallBackDelegate, ByVal afCmd As Integer, ByVal ulRes As Integer) As Short
  只要你試過一遍,就會覺得它的調用實際上很簡單,這方面的資料也很多。關鍵就是回調函數聲明的形式和定義的形式必須一致,否則將不能調用。
     Private _DDECallBack As DDEML.DDECallBackDelegate = Nothing
 _DDECallBack = New DDEML.DDECallBackDelegate(AddressOf DDECallBack)
        Dim ddeinst As Integer
        ddeinst = DDEML.DdeInitialize(g_lInstID, _DDECallBack, DDEML.APPCLASS_STANDARD, 0)

  dde初始化函數被調用之后,當前進程就會把dde的消息添加到消息循環中,如果收到這些消息,就會調用這個回調函數DDECallBack來處理。
 
第2個問題
 要想讓cell接受你的值,隨便傳一個字符串它是不接受的,你要使用xltable格式傳遞,當然,如果你做的是dde客戶端,什么格式也就無所謂了。(這時我經過大量的實驗得到的,如果你有好辦法,就請分享一下。)
10 00 04 00 01 00 03 00
 tdtTable, cb=4, rows=1, columns=3
 02 00 10 00
 tdtString, cb=16
 04 45 61 73 74
 cch=4, East (tdtString continued)
 04 57 65 73 74
 cch=4, West (tdtString continued)
 05 4e 6f 72 74 68
 cch=5, North (tdtString continued)

我的最后問題是tdtTable不能填寫多個cell,以上格式是微軟文檔中的,實際上不行,不知道為什么。把數據寫在第一個td中。





主站蜘蛛池模板: 青草久久精品 | 三级黄在线播放 | 婷婷97狠狠的狠狠的爱 | 日本欧美在线 | 亚洲 欧美 日韩 综合 | 日韩欧美一区二区三区中文精品 | 综合久久久久 | 一级做a免费视频 | 日韩高清在线高清免费 | 亚洲综合亚洲综合网成人 | 亚洲人xx视频 | 片成年免费观看网站黄 | 婷婷九月| 天天干天天操天天射 | 日韩精品不卡 | 亚洲国产精品久久 | 日韩一区二区在线免费观看 | 日本免费不卡在线一区二区三区 | 色妹子影院 | 一级免费黄色大片 | 四虎影院黄色 | 一二三四日本高清 | 欧日韩不卡在线视频 | 亚洲国产成人久久综合区 | 啪啪激情综合 | 色婷婷5月精品久久久久 | 日本红怡院亚洲红怡院最新 | 天堂网在线视频 | 午夜视频在线观看视频 | 天天插日日射 | 欧美一区2区三区4区公司 | 一二三四五影视在线播放 | 同房视频在线观看 | 一二三四免费观看高清动漫视频 | 亚洲 日本 欧美 日韩精品 | 亚洲精品免费视频 | 欧美综合一区二区三区 | 亚欧精品一区二区三区四区 | 五月激情综合婷婷 | 色综合天天综一个色天天综合网 | 日韩欧美高清在线观看 |