`
testcs_dn
  • 浏览: 113760 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

vc获得窗口句柄

 
阅读更多

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中获取窗口句柄的各种方法

    在Microsoft Visual C++ (VC) 开发环境中,窗口句柄(HWND)是Windows API中用于标识应用程序窗口的一个重要标识符。窗口句柄是系统分配的一个唯一整数值,它允许程序与特定窗口进行交互。本篇文章将详细介绍在VC中...

    VC进程ID获得主窗口句柄获得进程名

    VC获得进程ID获得主线程ID获得窗口句柄获得主窗口获得进程名 1.窗口类名 窗口句柄 窗口标题 窗口句柄 HWND FindWindow( LPCTSTR lpClassName, //窗口类名 可用 VC或者VS自带的Spy++查看 LPCTSTR lpWindowName //...

    VC获取自身窗口句柄

    本文将围绕“VC获取自身窗口句柄”这一主题展开,详细介绍相关知识点,包括窗口句柄的基本概念、获取窗口句柄的方法、以及在实际编程中的应用。 ### 窗口句柄的基本概念 在Windows操作系统中,每个窗口都有一个...

    vc窗口 输出 创建窗口句柄 输出窗口

    本文将深入解析如何使用Visual C++(VC)创建窗口句柄、输出窗口,以及这一技术在小游戏基本窗口设计中的应用。通过分析给定代码片段,我们将详细解读其工作原理,并探讨其中涉及的关键概念。 ### 一、窗口句柄的...

    VC由进程ID获取窗口句柄

    VC由进程ID获取窗口句柄 VC由进程ID获取窗口句柄是Windows编程中的一种常见操作。通过获取进程ID,可以获取该进程下的所有窗口句柄,从而实现对该进程的控制和操作。本文将详细介绍如何使用VC++通过进程ID获取窗口...

    【VC源码】根据窗口句柄获得EXE的全路径

    本文档介绍了一种通过窗口句柄获取对应EXE文件全路径的方法。 #### 二、问题背景与解决方案 在DLL注入场景中,通常我们希望能够在DLL内部获取到注入时所在的EXE文件路径。然而,使用`GetCurrentDirectory`函数只能...

    VC_各种情况下的窗口句柄的获取

    ### VC_各种情况下的窗口句柄的获取 在Windows编程中,经常需要处理与窗口相关的操作,例如查找、隐藏、显示、移动等。这些操作往往需要先获取目标窗口的句柄(HWND)。句柄是Windows操作系统为了标识系统中的每一...

    vb-EnumChildWindows所有窗口及子窗口句柄免费版

    vb-EnumChildWindows所有窗口及子窗口句柄是一款vb枚举窗口枚举出...如果您知道子窗口控件的窗口句柄,那么您可以用下面的叙述来获得ID。 基本信息函数功能:枚举一个父窗口的所有子窗口。 函数原型: BOOL EnumChild

    VC写的窗口截图工具,可截取当前名目中的所有控件

    标题中的“VC写的窗口截图工具,可截取当前名目中的所有控件”指的是使用Microsoft Visual C++(简称VC)开发的一款屏幕截图软件,具备特殊功能,能够捕捉到屏幕上特定窗口内的所有控件,比如按钮、文本框、列表视图...

    窗口句柄获取工具

    窗口句柄获取工具是一款专为IT专业人士设计的小程序,它主要功能是帮助用户方便快捷地获取其他软件的窗口句柄。在Windows操作系统中,窗口句柄(HWND)是一个标识符,用于唯一识别应用程序中的每一个窗口。这个工具...

    获得不同窗口句柄,VC++语言的

    ### 获取不同窗口句柄的方法(VC++语言) 在Windows编程中,经常需要处理与窗口相关的操作,例如获取窗口句柄以便进行进一步的操作如修改窗口属性、发送消息等。本篇文章将详细总结几种常用的方法来获取不同类型的...

    VC遍历窗口及窗口子控件

    该程序可遍历当前打开的所有窗口,以及每个窗口的子控件,显示出窗口名字,子控件名字及类型,使用VC++开发

    VC++实现spy++源码获取窗口句柄的功能vs2015

    在本文中,我们将深入探讨如何使用VC++在Visual Studio 2015环境下实现类似Spy++的功能,即获取窗口句柄。Spy++是一款强大的Windows API调试工具,它可以帮助开发者查看和监视窗口、消息、线程以及进程。我们将关注...

    visual c++ vc制作仿spy++程序_WindowFromPoint根据鼠标坐标获得所在窗口的句柄.zip

    这个压缩包文件“vc制作仿spyxx程序_WindowFromPoint根据鼠标坐标获得所在窗口的句柄.zip”显然包含了用于创建一个类似SpyXX的程序的资源。SpyXX是一款功能丰富的系统监视工具,它允许开发者查看和分析Windows系统的...

    VC++窗口取色、获取坐标、获取句柄窗口管理器

    在VC++编程环境中,窗口取色、获取坐标和获取句柄是常见的操作,这些功能对于开发者来说至关重要,尤其是在进行窗口管理器的开发时。本文将详细介绍这些知识点,并结合"窗口管理器.exe"和"勇芳软件_在线自动更新.exe...

    vc获取窗体句柄gethandle.pdf

    FindWindow() 函数用于获取指定类名和窗口名的窗口句柄。其原型为: ```cpp HWND FindWindow( LPCTSTR lpClassName, // 窗口类名 LPCTSTR lpWindowName // 窗口标题名 ); ``` 使用这个函数,可以根据窗口类名或...

    当前路径 窗口句柄 进程

    要得到窗口句柄,可以使用`FindWindow`或`FindWindowEx`函数,通过指定窗口类名和窗口标题来查找。如果窗口是你的应用程序创建的,你通常可以在消息处理函数中直接获取到句柄。 最后,我们要了解的是"进程"。在操作...

    c++ vc6 句柄类

    1. **构造函数**:用于创建句柄,可能通过调用特定的系统API,如`CreateWindow`(对于窗口句柄)或`CreateFile`(对于文件句柄)。 2. **析构函数**:在对象销毁时自动调用,确保句柄被正确关闭,防止资源泄漏。这...

    VC修改窗口类名

    在VC(Visual C++)开发环境下,有时我们需要对窗口类名进行修改以满足特定的应用需求或是实现特定的功能特性。本文将详细介绍如何在VC环境下通过修改窗口类名来达到这一目的。 ### 修改窗口类名的基本原理 窗口...

    窗口句柄抓取工具 ViewWizard vc&vb;编程所用

    一个类似于SPY++的工具,可查看窗口和控件句柄、类名、标题、风格等信息,可向窗口发送文字,可控制窗口状态,如显示、隐藏、置顶、关闭、终止等,可以突破灰色的按钮。WSEdit用来修改窗口的样式信息,如是否可调整...

Global site tag (gtag.js) - Google Analytics