修改msn個人訊息

突然聽到有人想要做個功能,
就是要在執行他的程式的時候,
msn上的個人訊息要改為”我現在正在使用 xxx ”或是”我現在正在玩 xxx ”

msn本身的功能就已經有個[顯示我正在收聽的歌曲資訊]
而現在很多音樂播放軟體也都”支援”msn這樣的功能.

所以稍微google一下,果然有一堆相關的網頁.

大致上的做法如下(使用C#).

下面這片段直接貼到你的class中

[DllImport("user32", EntryPoint = "SendMessageA")]
        private static extern int SendMessage(int Hwnd, int wMsg, int wParam, int lParam);

        [DllImport("user32", EntryPoint = "FindWindowExA")]
        private static extern int FindWindowEx(int hWnd1, int hWnd2, string lpsz1, string lpsz2);
        private const short WM_COPYDATA = 74;
        public struct COPYDATASTRUCT
        {
            public int dwData;
            public int cbData;
            public int lpData;
        }

        public COPYDATASTRUCT data;
        public int VarPtr(object e)
        {
            GCHandle GC = GCHandle.Alloc(e, GCHandleType.Pinned);
            int gc = GC.AddrOfPinnedObject().ToInt32();
            GC.Free();
            return gc;
        }
        private void SendMSNMessage(bool enable, string category, string message)
        {
            string buffer = "\\0" + category + "\\0" + (enable ? "1" : "0") + "\\0{0}\\0" + message + "\\0\\0\\0\\0\0";
            int handle = 0;

            data.dwData = 0x0547;
            data.lpData = VarPtr(buffer);
            data.cbData = buffer.Length * 2;

            handle = FindWindowEx(0, handle, "MsnMsgrUIManager", null);
            if (handle > 0)
                SendMessage(handle, WM_COPYDATA, 0, VarPtr(data));
        }

但要記得開頭的using要加

using System.Runtime.InteropServices;

而在你的程式中要使用的話就是呼叫SendMSNMessage的函數.如下:

SendMSNMessage(true,this.comboBox1.Text, this.textBox1.Text);

第一個參數 : 設定msn是否要顯示該段訊息,或是只顯示msn中的設定訊息.

第二個參數 : 顯示訊息的圖片,目前似乎只有三個(Office,Games,Music),顯示歌曲資訊就是使用Music

例圖 :

Office : msnpsn01

Games :  msnpsn02

Music :   msnpsn03

第三個參數 : 要顯示的訊息.

 

範例下載 :

原始碼 : MsnPersonalMsgChange-src.zip

執行檔 : MsnPersonalMsgChange-bin.zip

 

參考網址:

C#, Change your personal message automaticly

MSN Floating Personal Message

DotBlogs 的標籤:,,,

DotBlogs Tags: .Net C# code msn
posted on 2008/10/2 14:49 | 我要推薦 | 閱讀數 : 2210 | 分類[ .Net C# Microsoft 技術相關 程式相關 ] 訂閱

Comments on this post

# re: 修改msn個人訊息

看不懂要怎麼設耶
能教教我嗎
謝謝
要貼在那裡呢?class是那裡阿

謝謝
Left by PP on 十二月 11, 2008 11:06 下午
回覆

# re: 修改msn個人訊息

 to pp,

你是要寫程式玩?

還是只是要玩換訊息的功能?

寫程式的話,可以直接下載範例程式原始碼看一下程式,

要玩的話,直接下載執行檔解壓縮執行.

Left by ajun on 十二月 12, 2008 1:27 上午
回覆

# re: 修改msn個人訊息

哈哈 謝謝你哦...可以用了.真的很感謝你.
Left by PP on 十二月 12, 2008 11:53 下午
回覆

回應:

Please add 5 and 6 and type the answer here: