會員登入 新使用者?立即註冊

這裡記錄了一些我在程式設計時的小小心得,本部落格文章若沒註明出處者皆屬個人原創,歡迎各位引用但請記得註明出處喔!

關閉
你好,歡迎參觀我的部落格! 我要留言

DotMSN開發MSN機器人

2008/07/24 02:19

自從之前寫了一個利用msn增益集來開發msn外掛程式的文章後,似乎很多人都在試著開發這種增益集,但是msn增益集是有一些限制的,加上msn每次改版時所提供的介面實作有點不同,因此撰寫出來的增益集就有版本上的限制,我想既然那麼多人喜歡開發智慧型的msn,那就不得不提一下DotMSN這個免費套件,DotMSN是一個有名的MSN機器人開發套件,許多有名的MSN機器人都是利用該套件開發出來的,目前支援的通訊協定好像是MSNP9的樣子(不好意思,半年多沒碰它了,有點記不清了),使用DotMSN可以取代Messager的功能,意思也就是說,利用它你可以寫出一支接收與回應的智慧型程式,至於這個智慧IQ20?還是IQ180?那就看開發者的耐心了(不是看功力,是看耐心喔!)

要利用DotMSN開發MSN機器人,請先到http://www.xihsolutions.net/dotmsn/download.html下載套件,如果是初次接觸DotMSN的開發者,建議下載DotMSN 2.0.2 (August 22, 2006) Full package (~2,7 Mb)這個版本,這個版本包含了組件、範例程式、說明文件與原始碼,在開發時可以取得更多的開發相關資訊!

下載並解壓縮之後會產生4個資料夾,分別為---

l   Dll(已編譯的組件)

l   Documentation(開發說明文件)

l   Example(已編譯的範例程式)

l   Source(範例程式與組件的原始程式碼)

 

你可以先在Example底下先執行一次DotMSNClient.exe看看,以我自己的測試結果其實是會發生一些Exception,你可以先自行修正某些bug,有什麼問題大家可以討論參詳一下。

首先呢,就先在Source資料夾底下開啟DotMSN方案檔,開啟之後在方案總管我們可以看到有三個專案,其中DotMSN2這個專案是架構整個DotMSN套件的核心,ProxyServer則是負責底層通訊協定的處理,如果你沒有十足的把握,就先別動這兩個專案的歪腦筋,不過多研究一下倒是可以增加自己不少功力!

如果要先修掉那個討人厭的exception對話視窗,最快最懶的方式就是在Nameserver_ExceptionOccurred方法底下直接把MessageBox.ShowMark,問題通常是出現在NameServer登入時,所以如果沒能力修正它,乾脆忽略這段訊息即可,反正一樣可以正常執行!

整支程式就自行研究了,範例原始碼和說明文件都全了,我也不知道該告訴各位什麼重點,程式碼很簡單沒什麼特別難的,C#不熟的人恐怕會對Delegate這種抽象中的抽象-委派型別有點頭痛,Delegate本來就是用來處理多執行緒與事件處理的,所以對Delegate不熟的人多看看這些程式碼會很有幫助的!

有什麼不懂的地方可以回應詢問,能幫忙的部分我就盡力而為了!

上一篇 下一篇
回應(7)
SONET.ALL2008/11/11 10:23 回應

3分鐘學會使用程式發送msn訊息,php篇(一)
http://rd-program.blogspot.com/2008/11/5msnphp.html
3分鐘學會使用程式發送msn訊息,dotNet C#篇(二)
http://rd-program.blogspot.com/2008/11/3msn-net-c.html

SONET.ALL2008/11/11 10:22 回應

3分鐘學會使用程式發送msn訊息,php篇(一)
http://rd-program.blogspot.com/2008/11/5msnphp.html
3分鐘學會使用程式發送msn訊息,dotNet C#篇(二)
http://rd-program.blogspot.com/2008/11/3msn-net-c.html

tina2008/10/21 16:43 回應

您好, 我也跟★森永乳加巧克力★的問題一樣,想要自動透過msn傳送訊息給特定的msn帳號,但試好久一直有問題...不知adoph 可否幫忙,給個範例.....

SONET.ALL2008/08/20 18:20 回應

http://rd-program.blogspot.com/2008/08/msnp15-i.html 這一篇也提供您參考

adoph2008/08/24 01:52回覆

謝謝您囉~

最近一直在忙著寫網頁程式,暫時還分不了心去研究這個題目,等我有時間再來好好研究一下!感激~

★森永乳加巧克力★2008/07/27 02:10 回應

您好,我想在server寫一個程式,當一個事件發生時,server會自動透過msn傳送訊息給特定的msn帳號,這部分dotmsn有支援到嗎?

謝謝您喔

adoph2008/07/27 12:48回覆

有啊~這當然做的到的,但這不算是DotMSN的功能啦~因為DoyMSN本身就有收發訊息的功能,我們只需要在撰寫Server端的觸發事件時利用DotMSN的發送訊息的方法將訊息主動發送給特定帳號即可,問題並不大啦!其實只要參考一下DotMSN的範例,它的觸發事件是接收訊息時觸發,依照同樣的原理,我們可以再寫一個處理方法,改一下發送的目的帳號(原來的目的帳號是擷取自事件的參數e),並將方法委派給Server觸發事件即可!你先試試看,如果不行的話我再寫一個範例程式來分享!

歹命資管人2008/07/24 09:37 回應

謝謝你,你人真的太好了!

 

看一看,我還是學c#好了 ...

adoph2008/07/24 10:47回覆

不客氣~C#是很重要的程式喔!現在很多國外的開放源碼都是使用C#寫成的,多學一種語言不是壞事!

引用(0)
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30  

更新日期

2009/01/20 02:46

統計資料

  • 今日人數:0
  • 累計人數:5874
  • 發表文章:33
  • 相片數量:74
  • 回應數量:23
雅虎資訊 版權所有 © 2009 Yahoo! Taiwan All Rights Reserved
「本服務設有管理員」 服務條款 隱私權政策