線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2118
推到 Plurk!
推到 Facebook!

請問如何在程式中透過MSN發送訊息給連絡人?

答題得分者是:RaynorPao
旅者
一般會員


發表:5
回覆:9
積分:2
註冊:2004-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-13 15:38:57 IP:203.74.xxx.xxx 未訂閱
小弟最近試著在程式中控制MSN...但卻碰到一些問題,因此希望跟各位大哥討論看看是否有法可解...^^    小弟在BCB中以Import Type Library把MSN連結進來,並以如下方式登入MSN
IMessengerApp *pIMsgrApp;    CoInitialize(0);
CoCreateInstance(CLSID_MsgrApp, NULL, CLSCTX_ALL, IID_IMsgrApp, (void **)&pIMsgrApp);
pIMsgrApp->autoLogon();    並取得連絡人清單:
IMsgrObject *pIMsgrObj;
IMsgrUsers *pIMsgrUsers;    CoCreateInstance(CLSID_MsgrObj, NULL, CLSCTX_ALL, IID_IMsgrObj, (void **)&pIMsgrObj);
pIMsgrObj->get_List(MLIST_CONTACT,&pIMsgrUsers);    以上,都可正常動作,也可順利取得自己或連絡人的LogonName及暱稱..等資料
接著,問題來了....小弟要對其中一個連絡人發送訊息,於是...    IMsgrUser *pIMsgrUser;
Variant vName;
long lCookie;    pIMsgrUser = pIMsgrUsers->Item(0);
Label4->Caption = AnsiString(pIMsgrUser->friendlyName);
vName = pIMsgrUser->LogonName;    以下這個就是小弟的問題了...
pIMsgrUser->SendText(NULL,
L"Test...^^u",MMSGTYPE_ALL_RESULTS,&lCookie);    原以為這樣就可讓對方收到訊息....但結果是啥都沒收到....T_T
上面SendText的原型為
SendText(BSTR bstrMsgHeader/*[in]*/, BSTR bstrMsgText/*[in]*/, 
MMSGTYPE mmtType/*[in]*/, long* plCookie/*[out,retval]*/)    其中 bstrMsgHeader 因為小弟不知道是啥東東,所以就給它填了NULL.....
以上,請各位大哥指教,應該怎麼做才能在程式中透過MSN發送訊息給連絡人呢??
小弟的E-mail:dsstar_y@yahoo.com.tw 小弟的MSN:dsstar@sinamail.com 如不便在此討論,可以E-mail或MSN討論看看...謝謝....^^u 請各位高手多多指教..... 發表人 - taishyang 於 2004/02/13 15:42:28
旅者
一般會員


發表:5
回覆:9
積分:2
註冊:2004-02-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-23 16:57:15 IP:203.74.xxx.xxx 未訂閱
不好意思..小弟終於在一個英文(T_T)網站上找到解法了... 其中的MsgHeader只要填入 "MIME-Version: 1.0\r\nContent-Type: text/plain\r\ncharset= UTF-8\r\nX-MMS-IM-Format: FN= Microsoft Sans Serif\r\nEF= 0\r\nCO= 0\r\nCS= 0\r\nPF= 0\r\n\r\n" 就能發訊了.. 經測試,不論收發訊,英文是沒問題啦...但..中文就會變亂碼.. 原因應該是UTF-8編碼的關係吧.... 有人知道UTF-8與BIG5之間要如何轉換嗎??
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-23 17:12:40 IP:203.73.xxx.xxx 未訂閱
引言: 不好意思..小弟終於在一個英文(T_T)網站上找到解法了... 其中的MsgHeader只要填入 "MIME-Version: 1.0\r\nContent-Type: text/plain\r\ncharset= UTF-8\r\nX-MMS-IM-Format: FN= Microsoft%20Sans%20Serif\r\nEF= 0\r\nCO= 0\r\nCS= 0\r\nPF= 0\r\n\r\n" 就能發訊了.. 經測試,不論收發訊,英文是沒問題啦...但..中文就會變亂碼.. 原因應該是UTF-8編碼的關係吧.... 有人知道UTF-8與BIG5之間要如何轉換嗎??
旅者 你好: 有關 BIG5-->UNICODE-->UTF8 以及 UTF8-->UNICODE-->BIG5 的做法,請參考以下的連結文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26917 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26110 -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
旅者
一般會員


發表:5
回覆:9
積分:2
註冊:2004-02-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-24 09:55:13 IP:203.74.xxx.xxx 未訂閱
嗯....我試試看..謝謝..^^
DigitalEvil
一般會員


發表:3
回覆:1
積分:0
註冊:2004-03-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-29 22:28:33 IP:140.134.xxx.xxx 未訂閱
想請問一下旅者一個問題 ^^ 小弟也試著寫MSN的程式..也是把msn 用Import Type Library的方式link進來.. 我有把產生的 .h 檔 include進來.. 但就是沒有 "TMessengerApp" 我是impport msn6.0 他產生有下列的 MessengerPrivate_TLB.h MessengerPrivate_TLB.obj MessengerPrivate_OCX.h MessengerPrivate_OCX.obj
旅者
一般會員


發表:5
回覆:9
積分:2
註冊:2004-02-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-31 13:46:21 IP:203.74.xxx.xxx 未訂閱
這個....Private是MSN本身的一些....Lock之類的東東..這個我並沒有用到..(也不想用..^^|||) 根據我的測試結果來判斷,我認為MSN其實只是Messenger的進化版本,所以..請你import "Messenger",而非"MSN"...裡面可以找到IMessengerApp,及TMsgrObj這兩樣...估計App指的是介面外觀,Obj指的是功能實體...因為在下測試時,使用App1及Obj1,會開啟Messenger...使用App3,Obj2..會開啟MSN..請將Messenger的執行檔(忘記檔名了..)載入,就會看到那堆Class..其中App2繼承App1..以此類推..
Theodore
一般會員


發表:11
回覆:10
積分:4
註冊:2003-05-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-18 17:26:47 IP:211.21.xxx.xxx 未訂閱
請問用的是哪一個ActiveX DLL 呢? 我找了好多遍並無找到 Messager 相關的ActiveX 可以Import. 請多指教謝謝.
系統時間:2024-11-22 18:57:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!