本來打算做個聊天機器人的,不過網上找了下,找不到能用的現成的登陸QQ用的C#代碼。最多就只找到一個手機 QQ 的版本。 不過這個版本不能群聊,這個比較郁悶。所以,干脆就自己搗鼓了一份。測試在 2012/12/18 可以正常登陸qq,支持群聊,好友處顯示為 電腦在線。
相關的源碼下載: http://pan.baidu.com/share/link?shareid=142060&uk=1845666913
代碼如下:
// 創建一個新的 QQ 客戶端。 QQClient qq = QQClient.Create(qqNumber, qqPwd); // 登陸 QQ 。 if (qq.Login() == QQLoginProcess.Login) { // 設置 QQ 為隱身登陸 :) qq.Status = QQStatus.Hidden; // 設置收到消息的回調。 qq.FirendMessageCallback = new MessageCallback((uint uid, uint int_uid, long t, string msg) => { Console.WriteLine("收到消息 [{0}] {1}", uid, msg); qq.SendMessageToFriend(uid, msg); }); // 設置收到消息的回調。 qq.GroupMessageCallback = new MessageCallback((uint uid, uint int_uid, long t, string msg) => { Console.WriteLine("收到群 消息 [{2}/{0}] {1}", int_uid, msg, uid); }); // 發送消息。 qq.SendMessageToFriend(273208811, "xuld 的 QQ,有問題可問我"); Console.WriteLine("登陸完成。請按回車鍵注銷登陸。否則騰訊可能認為是非法程序。"); Console.ReadLine(); // 注銷 QQ qq.Logout(); }
順便還搞了一個異步登陸的方式:
QQClient qq = new QQClient(); qq.LoginAsync(); // 測試 QQ 目前的登陸過程。 while(qq.LoginProcess != QQLoginProcess.Login){ Thread.Sleep(1000); // 可以做其它事情。 }
相關的源碼下載: http://pan.baidu.com/share/link?shareid=142060&uk=1845666913