最近总有MSN Messenger上的好友问我,为什么我一登录就在他们那里弹出五六个登录窗口:
其实,我只是自己写了一个小程序让MSN Messenger以很短的间隔连续的改变online/offline的状态而以。而且,程序也没有深入用到MSN的Protocol或者SDK,也没有用SendMessage/FindWindow之类的,只是用SendKeys写了个VBScript:
LoopCount = 5 'Show 5 signed-in windows Set WshShell= WScript.CreateObject("WScript.Shell") WshShell.AppActivate "MSN Messenger" 'send "alt+f, m, f, alt+f, m, o" For i = 1 to LoopCount WshShell.SendKeys "%f" WshShell.SendKeys "m" WshShell.SendKeys "f" WScript.Sleep 500 WshShell.SendKeys "%f" WshShell.SendKeys "m" WshShell.SendKeys "o" WScript.Sleep 500 Next
如果用Visual Basic 6.0写也很方便的,只要改动一点点地方:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() LoopCount = 5 'Show 5 signed-in windows Set WshShell = CreateObject("WScript.Shell") WshShell.AppActivate "MSN Messenger" 'send "alt+f, m, f, alt+f, m, o" For i = 0 To Int(Val(Me.Text1.Text)) WshShell.SendKeys "%f" WshShell.SendKeys "m" WshShell.SendKeys "f" Sleep 500 WshShell.SendKeys "%f" WshShell.SendKeys "m" WshShell.SendKeys "o" Sleep 500 Next End Sub
如果运行的不是MSN Messenger而是Windows Messenger 4.7/5.0,把AppActivate的参数改掉就可以了。我挺喜欢这个小把戏的,一次出现5个登录窗口,很醒目的。不过,希望大家不要恶意使用不断的爬,这样会变成DDoS攻击,增加对服务器的负载的,负载大了以后服务器性能变差也会影响别人使用的。如果老是在别人那里出现一堆登录窗口也是不礼貌的,是一种污染。
其实,换个角度看,这就是一个Monkey Testing程序(还够不上完全Smart Monkey的程度)。这也是Windows程序的GUI自动测试的一个最简单的实例。
随贴广告(测试期)
打印 | 张贴于 2004-10-18 15:58:00 | Tag:Cool Stuffs

留言反馈
tandy8858@163.com
Radeon_ling@163.com
只怪自己是个电脑白白:(
大概是:
1、MSN服务器切换在线状态需要一点点时间,如果还没有完成状态切换操作时提交切换状态申请就不行了
2、MSN客户端本身就有保护
cnblogs的确有不少问题。这两天cnblogs的RSS总是同样的文章出两条
我的blog被dudu给删掉了,原因是我说他的cnblogs程序没有.Text程序写得好.这么烂的东西还拿出来给别人下载,怎么说我也拿不出手啊.
LoopCount我改成10,但是没有效果,只显示5个提示框。
为什么?
的确是monkey test呀