本來打算做個聊天機器人的,不過網上找了下,找不到能用的現成的登陸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
