管理TM群

心有所爱12366

心有所爱12366

2016-01-29 12:12

管理TM群,管理TM群
管理TM群

作者:何晓华 nommy

下载源代码

一、问题的提出
偶是两个QQ群的管理员,平常都是在群里跟其它人交流.当然啦,因为偶是管理员,就要承担起管理员的责任.在实际中,会碰到两个问题:

1、我的两个群都很热,有很多人加入,这样,不用很快,群里的人就达到了上限200人了,就不能再让新的人加入.
2、平常有些人加入只是为了发广告,整天在这里发一些与群的主题不相关的内容.或者是有的人的QQ中毒了,老是不时发一些有病毒的链接.

对于这两个问题,我是这么的解决的.

1、当人数达到上限时,我就让群里的人都在群的名字前面加上一些特别的符号,比如:@%#%&^*,总之就是一些一般人不会用在自己群的名字的符号吧,以这些符号作为标志,识别哪些人是长期没有在群里发言的人.把这个改名的要求发在群的公告里,对于那些长期没有上线的人,当然看不到群的公告,也就不会改群的名片了.我以这些符号作为标志,清除那些长期不上线的人,留些空间,让新人能加进来.

2、对于那些乱发信息的人,当然就是立即T出群里啦.

这两种的做法都是把人给T出群里,但是在实际操作中却很麻烦了. 对于第一种情况,有些人把那个特别的符号放在群名字中的某个地方,比如,要求把@加在名字前面,有个名字叫天使,本来按照要求,改名后就变为@天使,但这个人却很有个性,他把名字改为天@使,对于这些人,当然可以不管三七二十一,一律当成是没有改名,把他T出群外啦.但是考虑到这个人还是有看到公告的,还是让他留下来吧,但这样就苦了我这个当管理员的啦,在200个人里面,一个个的看哪个人的名字不符合公告的要求.人这么多,把我都看到眼花聊乱的了.既要把人T走,又不好T错了.做这样的事,也真是费功夫的. 对于第二种情况,也是一样的,因为聊天信息的那个窗口里,只能看到这个人的名字和QQ号,为了把这个人T了,还得在群设置里,一个个人的去对,找那个QQ号,实在是痛苦,都是数字,要很细心一个个的核对,一不小心就把这个号给漏了过去,又得重新找一遍了,有好几次,我都是找了三次以上才把那个QQ号才找出来.为此,我想做一个工具,只要输入QQ号,就可以把人T走了.最初,我是想抓取QQ把群里的人T走时的数据包来分析一下.知道了这个数据包消息的格式后,我就可以仿造一个消息,直接的向QQ服务器发过去,就可以把人给T了.我用工具把T人时的数据包抓取一下,全部都是乱码的.因为QQ的消息格式并没有公开,把以分析起来真的是头痛了,都无从下手了,只好把这个想法放弃了.我又想了一下,既然我不能发这样的数据包,那就直接让QQ自己发这个包吧.为了要让QQ把T人的包给发出去,就得从QQ自己的界面入手,输入QQ号后,能在群设置里直接的定位到要T的QQ号,这样就不用人工的去找这个QQ号,省却了去找这个QQ号的痛苦了.

二、问题的分析
我在实现时使用的是TM2006新春版,在群聊天的窗口里点工具务栏上的"群设置",弹出了"群设置"窗口,在这个窗口里,选择"成员列表"这一项,右边有一个list,这个list就包含有所有的成员了,当选中了某个人后,就可把它T了.

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)


图一 群设置窗口

现在的问题是要先把想T的人找出来.怎么样在list中把想T的人给找出来呢,我的想法是枚举这个list里所有人的QQ号,然后跟想要T的QQ号作比较,如果有相同的,就把list里的这一项选中,然后我们就可以进一步的操作了.那现在就可以把问题转化为,枚举list,获得list里的项的信息.我用spy++查看了一下那个"群设置"窗口,如图所示:


图二 用spy++查看的窗口关系

最顶层的就是那个"群设置"窗口了,那个显示成员的list原来是一个syslistview32类型的控件,包含在一个类型为"#32770"的dialog中,我们只要顺着最顶层的窗口中,一层层的窗口找下去就可以得到我个想要的那个list窗口的名柄了,呵呵,之后,就可以向这个list发出消息,让它干活了.想到这,偶心时狂喜了一阵子.但是在实现过程中却是不是那么的顺利的.在顶层窗口中找那个list的句柄,并不是什么困难的事.把桌面上的把有窗口都枚举一遍,就要以找到窗口名为”群设置”的窗口了.

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)
EnumWindows(EnumWindowsProc,0);//枚举所有的窗口BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){TCHAR buff[1000];int buffsize(100),nPosition(-1);HWND hQQWnd=NULL;::GetWindowText(hwnd,buff,buffsize);if (strlen(buff)<1)return TRUE;CString      
展开更多 50%)
分享

猜你喜欢

管理TM群

C语言教程 C语言函数
管理TM群

qq群怎么设置管理员 qq群管理员如何设置

软件教程
qq群怎么设置管理员 qq群管理员如何设置

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

qq群怎么设置管理员

电脑入门
qq群怎么设置管理员

阿里旺旺群成员管理的使用

电脑网络
阿里旺旺群成员管理的使用

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

QQ管理员可以修改群内成员的群名片吗?

电脑入门
QQ管理员可以修改群内成员的群名片吗?

陌陌群管理员怎么设置

手机软件 应用软件
陌陌群管理员怎么设置

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PSV《讨鬼传 极》魂薙刀毒流配魂推荐及演示视频

PSV《讨鬼传 极》魂薙刀毒流配魂推荐及演示视频

JSP显示内容缓存技巧

JSP显示内容缓存技巧
下拉加载更多内容 ↓