窗口句柄怎么获取?手把手教你轻松搞定它!

吉云

今天来给大伙儿唠唠,我是咋获取这个窗口句柄的。先说下啥是窗口句柄哈,你可以简单理解成就是窗口的身份证,咱们得先拿到这个身份证,才能对窗口进行后续的操作。

一开始我也是一头雾水,不知道从哪里下手。后来我就琢磨着,这玩意儿应该跟操作系统有关,不同操作系统肯定不一样。我就去查查资料,发现这玩意儿在Windows、Linux、Java啥的还都不一样,还挺麻烦。

我用的Windows系统,所以就重点研究下Windows上的搞法。听说要用啥Windows API函数,我也不太懂,就照葫芦画瓢试试呗。

窗口句柄怎么获取?手把手教你轻松搞定它!

咱是用Python,有个叫pywin32的库,听说可以调用Windows API函数。我就装上这个库。

  • 第一步:导入相关的库

先把需要的库给弄进来,主要就是win32gui和win32api这两个哥们。

    窗口句柄怎么获取?手把手教你轻松搞定它!

  • 第二步:获取窗口句柄

pywin32里有个函数叫FindWindow,听名字就知道是找窗口的。我试下,发现可以通过窗口的标题名称来找到对应的窗口句柄。

代码大概长这样:

hld = *(None, '窗口标题名称')

这里要注意,第一个参数是类名,一般用None就行。第二个参数是窗口的标题名称,这个你得换成你要找的那个窗口的标题。

窗口句柄怎么获取?手把手教你轻松搞定它!

运行这段代码,如果找到对应的窗口,就会返回一个数字,这个数字就是窗口的句柄。如果没找到,那就返回0。

我试下,还真能获取到,有点小激动!

  • 第三步:获取鼠标坐标

我还顺便研究下怎么获取鼠标的坐标。有个函数叫GetCursorPos,用起来很简单:

窗口句柄怎么获取?手把手教你轻松搞定它!

point = *()

运行这行代码,就能拿到鼠标当前的x和y坐标。

  • 第四步:通过鼠标坐标获取句柄

接下来我想试试能不能通过鼠标坐标来获取对应的窗口句柄?

窗口句柄怎么获取?手把手教你轻松搞定它!

试一下还真可以,代码如下:

hld = *(point)

把刚才获取到的鼠标坐标传给WindowFromPoint这个函数,就能获取到鼠标所在位置的窗口句柄!

这回的实践还算顺利,中间虽然也遇到一些小坑,但最终还是搞定。以后再遇到类似的问题,应该就能更快地解决。这就是我获取窗口句柄的整个过程,希望能帮到大家!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]