危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2304 浏览18595094

C语言初体验之小小恶作剧

现在对C语言感兴趣的人不在少数,但是真正学下去的却寥寥无几,究其原因就是从C程序到windows程序这一过渡实在太过困难且漫长。希望本文能给各位学C的同志带来一点乐趣,以解学C的寂寞和无聊。本文危险漫步将带大家认识几个Windows API(API:应用程序编程接口)函数,并且用他们来搞点恶作剧。 

大家都用iiQQ的窗口抖动功能吧,其实质就是把一个窗口快速移动了位置而已。我们可以用MoveWindow(HWND,int,irit,int,mt,BOOL)这个API函数来实现窗口的移动。这个函数需要6个参数,分别是被操作的窗口的句柄,移动后的窗口横纵坐标,移动后的窗口的宽度和高度,以及一个窗口重绘选项参数。

所谓窗口句柄可以理解为一个窗口(不只是窗口,还可以是一个按钮、菜单等)的唯一标识符,系统通过这个标识符可以唯一确定一个对象。

注释很详细了,我就不多解释了,效果就是鼠标点哪个窗口哪个窗口就开始抖动。

下面再来一个比较狠的。首先要介绍的是WinExec函数,这个函数的作用是执行一个程序,参数有两个,一个是程序的路径,另一个是运行方式。大家都知道关机用的程序shutdown吧,我们可以这样用,WinExec(”shutdown-s—t 0”,0)。后面的参数0表示隐藏窗口执行。当然,这不是全部,我们还有一个更绝的函数SetCursorPos,这个函数的作用是把鼠标定位到屏幕的某个位置,想象一下,如果循环执行会是什么效果。我写的代码如下:

当这个程序执行之后,效果是这样的。首先弹出了要关机的提示,然后鼠标不听使唤了,纳闷之际,关机了。

当然,还有其他很多的玩法,大家就尽情地玩吧。在MSDN Lib里还有很多更好玩的函数,喜欢恶搞的叉子可以尽管把他们找出来。阅读MSDN Lib既可以提高编程能力也能提高英语水平,何乐不为呢?至于本文中程序运行时的黑框框,大家就自己想办法处理吧。