自從之前寫了一個利用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.Show給Mark掉,問題通常是出現在NameServer登入時,所以如果沒能力修正它,乾脆忽略這段訊息即可,反正一樣可以正常執行!
整支程式就自行研究了,範例原始碼和說明文件都全了,我也不知道該告訴各位什麼重點,程式碼很簡單沒什麼特別難的,對C#不熟的人恐怕會對Delegate這種抽象中的抽象-委派型別有點頭痛,Delegate本來就是用來處理多執行緒與事件處理的,所以對Delegate不熟的人多看看這些程式碼會很有幫助的!
有什麼不懂的地方可以回應詢問,能幫忙的部分我就盡力而為了!