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
YouEnumProc,NULL);在YouEnumProc函数中,如果第一参HWND = = NULL,就跳离(return FALSE;),可以结束啦!然后,把类名数组准备好,得到类名,存之。返回真值,继续下一次扫描。看起来并不复杂,是一种函数递归。但是我可会解释!面啊!: p第二种解决方法:简单、直观——自己想出来的,颇得意首先准备一个时钟,一种存类名方法(我用TMemo)在定时器处理函数中:1、得到当前cursor的点位置2、再用WindowFromPoint,3、然后得到类名,放到TMemo里这样可以用鼠标获得你想要的窗口(包括按钮等),只要鼠标在窗口放一会儿。。。哈哈第三种方法:其实利用FindWindow和循环结构也应该可以总结:其实得到HWND的方法很多,比如知道了窗口层次,依次向下扫。。。在说第三种呢!但我觉得,我的方法最直接有效,你说呢?欢迎大家与我联系,并讨论这个问题!有关这个问题我还有许多疑问,比如HWND与ID的转换,在如IE页面中的表单控件的HWND或ID,还是其他的东东,总之是能识别他的东西。。。这个我很困惑,没办法!不清楚地方,大家要参照MSDN啊!
相关推荐
VC获得进程ID获得主线程ID获得窗口句柄获得主窗口获得进程名 1.窗口类名 窗口句柄 窗口标题 窗口句柄 HWND FindWindow( LPCTSTR lpClassName, //窗口类名 可用 VC或者VS自带的Spy++查看 LPCTSTR lpWindowName //...
VC中获取窗口句柄的各种方法
VC获取自身窗口句柄VC获取自身窗口句柄VC获取自身窗口句柄VC获取自身窗口句柄
VC由进程ID获取窗口句柄VC由进程ID获取窗口句柄
VC_各种情况下的窗口句柄的获取 VC_各种情况下的窗口句柄的获取
创建 窗口句柄,输出窗口,小游戏基本窗口
vb-EnumChildWindows所有窗口及子窗口句柄是一款vb枚举窗口枚举出...如果您知道子窗口控件的窗口句柄,那么您可以用下面的叙述来获得ID。 基本信息函数功能:枚举一个父窗口的所有子窗口。 函数原型: BOOL EnumChild
在DLL中使用GetCurrentDirectory得到的是注入后的进程的路径而不是DLL的路径,转而求其次,刚好找到有根据窗口句柄找进程路径的资料,于是将注入器EXE的句柄传给DLL,然后在DLL中调用下面的函数从而获得该路径。
仿qq截图,并可实时截图,比QQ更好。按S键保存图片。
VC++实现spy++源码获取窗口句柄的功能vs2015
该程序可遍历当前打开的所有窗口,以及每个窗口的子控件,显示出窗口名字,子控件名字及类型,使用VC++开发
本小程序可以自由获取软件的窗口句柄方便而又实用,比spy++更好用
获得不同类型窗口的句柄方法,总结了各种窗口句柄的获得方法,是初学者的一点参考。从网络上搜集并且整理而来
VC++ 窗口取色 坐标 获取句柄 窗口管理 很好用,勇芳最新版本
一个类似于SPY++的工具,可查看窗口和控件句柄、类名、标题、风格等信息,可向窗口发送文字,可控制窗口状态,如显示、隐藏、置顶、关闭、终止等,可以突破灰色的按钮。WSEdit用来修改窗口的样式信息,如是否可调整...
VC中得到当前路径的方法;知道窗口的句柄,怎么得到窗口指针;进程控制。(学习别人的东西,记录的一点)!
一个帮助初学者了解VC 窗口句柄用法的例子,包括了源代码,根据 VC 6.0的编程书籍中的例子修改而成的,向大家展示Windows程序内部运行原理,比如Windows应用程序,操作系统,计算机硬件之间的相互关系等,面向初学者...
vs2010实现对其进程的窗口置顶、取消置顶操作;实现DROPFILES消息封装并发送给其他进程。 注:1.一个pid获取到的是多个窗口句柄,操作的要是主窗口句柄;2.可以配合spy++看获取到的句柄是否正确;
vc制作仿spyxx程序_WindowFromPoint根据鼠标坐标获得所在窗口的句柄.zip
VC 枚举窗口信息,取得窗口句柄,可获取窗口ID,进程号等。统计出获取到的信息条数,以列表方式显示。