窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

首先介绍一下句柄的概念,每个窗口打开时都会被系统临时随机分配一个编号,以便区别彼此这个编号我们称之为句柄。当你确定了这个窗口的句柄,就可以用后台消息领命锁定这个窗口。向它发送指令这样就可以对这个窗口实施各种操作了。

窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

句柄的操作涉及到两个api函数

FindWindow()

GetWindowRect()

先介绍一个工具Spy4Win它主要的用处时查找当前窗口的标题类名,识别控件来源,窗口信息,关系窗口的获取(父窗口/子窗口),窗口内容的读取,窗口消息截获等。窗口的类名和标题可能时一样的但是句柄肯定时唯一的。用系统自带的扫雷举例,类名和标题都是扫雷句柄是2425396知道这些我们就可以使用FindWindow()这个函数了。


窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

首先来看一下FindWindow()这个函数的说明


窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

我们的代码就可以这样编写


窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

通过这段简单的代码我就可以获得,扫雷的窗口句柄有了句柄以后就可以进行下一步的相关操作了。


窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

现在我们在来介绍一下第二函数就是GetWindowRect()的一些用法,这个函数大概的含义是获得获取窗口信息。先看一下帮助文档的截图!

窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

注意一点库文件名不要改,如果改了会报错的。它的备注是获得整个窗口范围矩形,窗口边框,标题栏,滚动条及菜单等。在使用这个函数时主要用的是它获得窗口坐标的功能。

窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

看一下代码运行的效果,扫雷的句柄和这个窗口的坐标,都已经被我们编写的程序获取到了。左边的数值就是扫雷窗口距离屏幕左边的像素,其它的数值以此类推。

窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

上边是按钮实现的这个功能,但是我们不可能等扫雷出来在点一下按钮,这样没效率也不方便我们要实现的是自动功能,只要这个窗口出现就自动获取相关细心。这时就需要用到一个时钟组件,简单的来说这个组件就是一个不断循环的嵌套。可以设置时钟里运行代码的循环周期,一般都是以毫秒为计算单位。

窗口句柄与句柄获取WinAPI函数,外挂辅助工具编写的第一步。

不管怎么拖动扫雷,它的坐标都能实时显示到我们编写的程序中。这个就是读取各种目标软件参数的简单方法。窗口句柄概念刚接触可能会被搞晕,多练习几次就能明白原理了。


分享到:


相關文章: