LoveVV99的专栏

纸上得来终觉浅,绝知此事要躬行

关于msn shell

突然被我看出来了,msn shell的部分工作原理。

原来我还以为msn shell知道了msn的某些接口或者干脆就是和msn合作的产品,后来想想没什么必要啊,msn直接集成这些功能多好的,何必要外挂呢! 今天突然悟到了,原来msn shell用的是挺通用的办法:

自动隐藏:其实就是把msn的窗口拖到屏幕外面去,只留下一条边,不信你用鼠标放到那条边上,是不是出现了上下方向改变大小的鼠标形状?把鼠标放到那条边的最右端,是不是出现了斜向改变大小的形状?还有就是那条边的颜色,如果吸附在屏幕右边则是msn窗口最左边的颜色,吸附在屏幕上边则是msn窗口最下面的颜色,呵呵,这个方法真是简便啊,只需要msn shell的进程一直关注着msn窗口的移动,当到了屏幕边缘并且松开鼠标,移动到窗口以外(这个很重要)的时候就将msn窗口的位置移动到屏幕外,只留下几个像素的边缘。当鼠标再次移动到这里时,msn窗口当然对这个鼠标消息的处理只是出现一个拖动的句柄,msn shell就可以再发消息给msn窗口,让它把自己的位置移动到屏幕以内。嗯,这个方法说明,简单的办法也可以实现看起来很炫的功能,理论上这个办法可以应用于任何没有自动隐藏功能的软件。但是QQ是在它自己的代码中就实现了吸附的功能,所以表现和这个稍有些不同。

滚动信息:无他,其实就是模拟改变当前media player播放器播放的文件名。因为msn已经内置了一个显示当前播放文件的功能,不信你可以看看是不是滚动的信息前面都有一个耳机的样子?对了,这个就是显示当前播放内容的功能的标记。

热键呼出:这个也很容易看出来,msn本身就支持把msn窗口关掉,msn进程依然存在,所以这个隐藏窗口就不用做了。shell只需要注册一个热键,当捕获到这个热键消息后,就把msn调入,具体做法可以是模拟双击任务栏图标或者直接发送消息。

不过还有一些功能还不知道是如何做出来的,比如在msn的窗口加上背景图片等等。有空看看再。

阅读更多
个人分类: C/C++
上一篇关于光的折射原因
下一篇关于sizeof的最大值问题
想对作者说点什么? 我来说一句

MSN消息提示音

2012年03月12日 759KB 下载

msn软件消息提示音wav格式

2013年03月24日 650KB 下载

没有更多推荐了,返回首页

关闭
关闭