下列文章引述自ChrisTorng的網誌:
ChrisTorng Test Addin 是我為 Windows Live Messenger 8.0.0683 的新增 addin 功能所寫的測試程式,基本上已示範出 addin 所能做的所有功能。接下來,就是要有好的創意,寫出有用的 addin 了。請各位玩過此測試程式後,在這裡提出好的創意吧。說明檔如下:
ChrisTorng Test Addin 1.0
功能
這個 Test Addin 沒什麼功能,基本上就是把 Windows Live Messenger 之官方 addin 所有能做的事都展現出來了。主要是提供想自己寫 addin 的人,可以參考的程式碼。
安裝方法
1. 必須安裝 Windows Live Messenger 8.0.0683 以上。
2. 必須要安裝 .NET Framework 2.0 版 (22.4MB) http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&DisplayLang=zh-tw
3. 將壓縮檔解開至任意資料夾。如果不需要原始程式的人,可以刪掉除 ChrisTorngTestAddin.dll 以外其他所有的檔案。
4. 登錄 HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger 中增加 AddInFeatureEnabled DWORD 值為 1,以啟動隱藏的 Add-ins 功能。
5. Messenger 主視窗 – Tools – Options – Add-ins – Add to Messenger,選擇解出來的 ChrisTorngTestAddin.dll。可以在此處按Settings 開啟設定視窗。
6. 在 Messenger 主視窗自己的顯示名稱上按一下,選擇 Turn on “ChrisTorng Test Addin”。
原始程式碼
1. 使用 Visual Studio 2005 編譯。Visual C# 2005 Express Edition 應該可以編譯 http://msdn.microsoft.com/vstudio/express/visualcsharp/
2. 編譯前,可能需要加入下列參考 C:\Program Files\MSN Messenger\MessengerClient.dll。
3. 目前 Windows Live Messenger 無法正確釋放 dll,因此如果無法編譯,請結束 Windows Live Messenger 執行後再編譯。若 remove 之後等一段時間,也可以釋放 dll。
4. 執行檔名稱必須要與實作 IMessengerAddin 之主類別名稱相同,而且該主類別不能包在 namespace 中。
5. 我想微軟怕它被用來做 spam,基本上把 addin 定位為人離開時自動回覆訊息的工具,因此:
‧同時只能使用一個 addin。
‧不能自動啟動,只能設為在切到非線上/離線狀態時自動啟動,或由使用者手動啟動。
‧啟動後,WLM 會自動設定由 AddinProperties 中指定的 PersonalStatusMessage/Status/UserTile,關閉時又會自動恢復原始的資訊。不過狀態有時會切不過去,原因不明。
‧不能自由取得所有連絡人的資訊,只能在傳訊或狀態改變時,得到對方的資訊。
‧SendxxxMessage 只能在 OutgoingTextMessage/IncomingTextMessage 事件中呼叫,也因此程式送的訊息只能在有人送進/出訊息之後再加一個訊息。
‧Text 訊息一次限 400 字元,Action 訊息則一次可送 32767 字元 (因受限於文字方塊的長度,有可能還可以更長…)。
‧有許多安全性限制,比如說不能開檔,因此無法選擇硬碟中的圖片作為顯示圖片…
6. SavedState 可以儲存 addin 自己的狀態,供關閉後再開啟時,能恢復狀態用。
7. 上述儲存狀態,應是儲存在 HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger\PerPassportSettings 中所屬 Passport 代號下的 InstalledAddInsList\ChrisTorngTestAddin.dll 中。
作者
ChrisTorng
2006/4/21
http://spaces.msn.com/ChrisTorng
感謝協助測試
Mowd http://blog.mowd.tw
foolbear http://foolbear.bokee.com
感謝 Mowd 熱情大力推薦…
請問能增加訊息時間的功能嗎? 現在只有離線訊息有時間顯示,能不能讓上線情況下的每個訊息都有時間顯示? 多謝
工具-選項-訊息-在訊息上顯示發送時間 打勾
謝謝 😀