本来打算做个聊天机器人的,不过网上找了下,找不到能用的现成的登陆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
浙公网安备 33010602011771号