管理TM群

2016-01-29 12:12 37 1 收藏

管理TM群,管理TM群

【 tulaoshi.com - C语言心得技巧 】

管理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号的痛苦了.

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

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


图一 群设置窗口

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


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

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)
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
                        

来源:https://www.tulaoshi.com/n/20160129/1485043.html

延伸阅读
标签: 电脑入门
如果相应群成员设置了允许管理员协助修改我的群名片的功能,管理员才可以修改群内成员的群名片。具体设置方法为:打开相应群对话框=》群设置=》修改我的群名片=》勾选允许管理员协助修改我的群名片,点击确定即可。
标签: 电脑入门
2013年3月21日,QQ群管理员人数(不包括群主)已升级调整。调整结果如下: 图老师健康网温馨提示: 原QQ群等级0级的群管理员人数不会因以上调整而减少,如未达到上限则会进行补充。且在设置管理员时,系统也会显示可设置的管理员人数。 例如:群等级为3的200人群,管理员人数不变,仍保持为8人; 群等级为3的500人群或1000人群,管理员人数...
标签: 电脑入门
讨论组是一个独立于该群之外的临时会话组,群内管理员是不可以删除群内所创建的讨论组的。讨论组的加入者可以自行退出该讨论组,同时,若该讨论组连续6个月没有成员说话就会过期,过期后再次打开讨论组,并且发送消息,视为重新创建。
标签: 电脑入门
2013年3月21日,QQ群管理员人数(不包括群主)已升级调整。调整结果如下: 图老师健康网温馨提示: 原QQ群等级0级的群管理员人数不会因以上调整而减少,如未达到上限则会进行补充。且在设置管理员时,系统也会显示可设置的管理员人数。 例如:群等级为3的50人群,管理员人数不变,仍保持为8人; 群等级为3的500人群或1000人群,管理员人数...
标签: 电脑入门
可以的。当群主或管理员操作添加群成员后,会提示:群管理模式已升级,已向用户发送邀请,请等待用户接受,好友会收到QQ右下方信息提示:管理员*****邀请您加入到群******,当好友点接受后就可加入该群。 图老师健康网温馨提示:设置不允任何人加入群,是指不允许别人主动来加群。

经验教程

80

收藏

96
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部