大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> Script -> win32 API窗口句柄的获得

win32 API窗口句柄的获得

时间: 2021-07-31 作者:daque

篇作品是对于怎样获得窗口句柄,以及有哪些因变量可供运用的大略计划!可实用于vc、bcb(其余的我没有试,估量不妨),自己在bcb情况下考查。开始我会陈设出少许获得句柄的win32 api 因变量,而后大略说说她们的用处!结果说说我是如何领会和运用的。见笑了!

可用的win32 api因变量:

1.hwnd findwindow(lpctstr lpclassname, lpctstr lpwindowname) 

   hwnd findwindowex(hwnd hwndparent, hwnd hwndchildafter,lpctstr lpclassname, lpctstr lpwindowname) 

2.hwnd windowfrompoint(point& point)

3.bool callback enumchildproc(hwnd hwnd,lparam lparam)

   bool callback enumchildwindows(hwnd hwndparent, wndenumproc lpenumfunc,lparam lparam)

   bool callback enumwindows(wndenumproc lpenumfunc, lparam lparam)

   bool callback enumwindowsproc(hwnd hwnd, lparam lparam)

普遍用处:

       对于第一种,大师都很熟习,是捕获句柄的惯例兵戈,findwindow这两伯仲,不妨接收捕获东西的类名大概窗口题目之一,动作参数,归来一个hwnd。然而对于普遍大众,不确定领会一切的窗口(囊括题目栏、按钮之类)的类名啊!——不妨大略举例,指导你领会桌面图目标窗口的类名吗?而对于窗口题目,有大概会展示沟通的题目,有两个窗口——指一个步调的两个过程,这又是个烦恼吧!好了,这个题目先放放,连接下一组。

       第二组,经过win32设置的point构造(typedef struct tagpoint {   long x;  long y;} point),来赢得暂时鼠标光标场所的窗口hwnd,这是最直觉的兵戈!惯例操纵如次:先获得cursor的point(bool getcursorpos(lppoint)因变量),再用windowfrompoint。如许,咱们简直不妨赢得任何翻开的有窗口的因变量的hwnd了!而后经过获得类名的win32 api因变量(int getclassname(  hwnd hwnd,   lptstr lpclassname,   int nmaxcount ))获得类名——这边的lpclassname最佳用字符数组地方,nmaxcount即是数组的size了,同声,这种本领处置了第一个题目的烦恼!——我不妨把鼠标放在任何场合!*^_^*

       第三组,那些是用来陈列和处置任何窗口的超等兵戈!经过拉拢应用enumwindows和enumwindowsproc,enumchildwindows与enumchildproc,不妨扫描桌面一切窗口并对之处置!

我的领会:(这局部用工作启动式熏陶本领——谁让兄弟是教授呢!xi xi)

工作:获得一切的窗口的类名。

处置方法1:咱们会先想到第三组,不妨自桌面窗口发端(它是一切窗口的前辈),顺序扫描,获得类名共存之。有点儿像visual stdio的spy++,大概borland 的winsight32,简直方法如次:(bcb中)

在主步调中,挪用enumwindows,传入youenumproc的因变量地方作第一个参数,别忘了变换成wndenumproc典型。第二参可null。::enumwindows(reinterpret_cast<wndenumproc> youenumproc,null);

在youenumproc因变量中,即使第一参hwnd = = null,就跳离(return false;),不妨中断啦!

而后,把类名数组筹备好,获得类名,存之。

归来真值,连接下一次扫描。

看上去并不搀杂,是一种因变量递归。然而我可会证明!面啊!: p

第二种处置本领:大略、直觉——本人想出来的,颇痛快

开始筹备一个时钟,一种存类名本领(我用tmemo)

在准时器处置因变量中:

1、获得暂时cursor的点场所

2、再用windowfrompoint,

3、而后获得类名,放到tmemo里

第三种本领:本来运用findwindow和轮回构造也该当不妨。

 

 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.