文章编号:10653时间:2024-09-28人气:
FindWindowEx函数用于在 Windows 窗口层级中查找一个指定窗口。该函数可以通过指定父窗口和窗口类名或窗口标题来查找子窗口,也可以通过指定子窗口和窗口层级关系来查找父窗口或兄弟窗口。
HWND FindWindowEx(HWND hWndParent,HWND hWndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow);
HWND hWndParent = GetDesktopWindow(); HWND hWndChild = FindWindowEx(hWndParent, NULL, _T("Button"), NULL); if (hWndChild != NULL) {// 找到窗口,可以进行相关操作 }下面的示例代码演示如何使用 `FindWindowEx` 函数查找一个具有指定标题的父窗口:
HWND hWndChild = GetforegroundWindow(); HWND hWndParent = FindWindowEx(NULL, hWndChild, NULL, _T("记事本")); if (hWndParent != NULL) {// 找到窗口,可以进行相关操作 }
1 private void button2_Click(object sender, EventArgs e) 2 { 3 IntPtr hwnd = FindWindow(TGroupBox, 查询条件); 4 if (hwnd != ) 5 { 6 (找到窗口); 7 } 8 else 9 {10 (没有找到窗口);11 }12 hwnd = FindWindow(Notepad, null);13 if (hwnd != )14 {15 (找到记事本
FindWindowEx说明在窗口列表中寻找与指定条件相符的第一个子窗口返回值Long,找到的窗口的句柄。 如未找到相符窗口,则返回零。 会设置GetLASTError参数表参数类型及说明hWnd1Long,在其中查找子的父窗口。 如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)hWnd2Long,从这个窗口后开始查找。 这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。 如设为零,表示从第一个子窗口开始搜索lpsz1String,欲搜索的类名。 零表示忽略lpsz2String,欲搜索的类名。 零表示忽略
1.定义一个模块, 内容为:Option ExplicitPublic Declare Function GetNExtWindow Lib user32 Alias GetWindow (ByVal hwnd As Long, ByVal wFlag As Long) As LongPublic Declare Function GetWindowText Lib user32 Alias GetWindowTextA (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPublic Declare Function FindWindowa Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPublic Declare Function GetForegroundWindow Lib user32 () As Long2. 给窗口加一个按钮, 在按钮的click事件里写以下内容:Option ExplicitPrivate Sub Command1_Click()Dim hwnd As Longhwnd = GetForegroundWindow FindWindowa(Notepad, 新建 文本文档 - 记事本)Dim str1 As String, len1 As Longstr1 = Space(255) 定义接收字串 hwnd, str1, 1024Do while hwnd <> 0 hwnd = GetNextWindow(hwnd, 2) 只有2才表示找下一个窗口 len1 = GetWindowText(hwnd, str1, Len(str1)) If (InStr(1, str1, 记事, 1) > 0) ThenMsgBox 你要的窗口找到了, 它是: + str1Exit Sub 这一句看情况修改 End IfLoopMsgBox 很遣憾, 没有你要找的窗口End Sub3. 测试, 一定会通过..
FindWindow一般用了查找主窗口, 查找到主窗口后,用FindWindowEx查找里面的子窗口
找子窗口要用SPY++////////Private Declare Function FindWindowEx Lib user32 Alias FindWindowExA (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long 看里面的参数,第一个和第二个:ByVal hWnd1 As Long,ByVal hWnd2 As Long,这里都需要传入句柄,再看第三个和第四个:ByVal lpsz1 As String, ByVal lpsz2 As String,这里所要传入的是字符串。 具体意思如下: hWnd1 ---------- Long,在其中查找子的父窗口。 如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找) hWnd2 ---------- Long,从这个窗口后开始查找。 这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。 如设为零,表示从第一个子窗口开始搜索 lpsz1 ---------- String,欲搜索的类名。 零表示忽略,注意一般传入vbNullString lpsz2 ---------- String,欲搜索的类名。 零表示忽略,注意一般传入vbNullString 用实践帮我们分析,这里还是拿记事本开刀。 打开一个记事本,新建一个标准EXE,接着新建一个CommandButton,Caption设置为:设置文本。 OK,写入以下代码: Private Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib user32 Alias FindWindowExA (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function EnableWindow Lib user32 (ByVal hwnd As Long, ByVal fEnable As Long) As Long Private Sub Command1_Click() Dim WindowHandle As Long, ChildWindowHandle As Long WindowHandle = FindWindow(vbNullString, 无标题 - 记事本) If WindowHandle Then 如果获取句柄成功 ChildWindowHandle = FindWindowEx(WindowHandle, 0, Edit, vbNullString) If ChildWindowHandle Then 如果成功获取子句柄 EnableWindow ChildWindowHandle, False 禁用子窗口 Else MsgBox 无法获取子窗口 End If End If End Sub 好了,帮大家分析。 看第一行:Dim WindowHandle As Long, ChildWindowHandle As Long,用于储存获取的句柄的。 WindowHandle = FindWindow(vbNullString, 无标题 - 记事本)这个就不用讲了,上面已经讲过。 ChildWindowHandle = FindWindowEx(WindowHandle, 0, Edit, vbNullString),这一段是通过我们已经获取的记事本句柄获取其中的子窗口句柄。 大家可以用Spy++查看到记事本的TextBox类,然后根据类名写入即可。 EnableWindow ChildWindowHandle, False 这又是一个新的API,虽然前面我没有前过,但是这个API使用起来及其简单。 这个API中有两个参数,第一个理所当然是传入窗口句柄,第二个为Long变量,其实这里应该设为Boolean变量好些,主要是用来处理当前窗口是否可用。 True可用,False禁用。 现在F5运行,记得打开记事本哦,然后点击Command1,看看能不能在记事本的文本框中输入字符串?是否被禁用了?
内容声明:
1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违法信息,如您发现违法内容,请联系我们进行举报处理!
4、本文地址:http://www.jujiwang.com/article/26912b7bc3ceae86f7d2.html,复制请保留版权链接!
FionaRead是一位开创性的作家,她的作品对当代文学产生了深远的影响,她以其对人类状况的深刻见解、扣人心弦的故事讲述和对语言的精湛运用而闻名,从早期的短篇小说到备受赞誉的小说,Read一直挑战着文学的界限,并因其对社会变革和人权的坚定承诺而受到赞誉,简介FionaRead于1953年出生于澳大利亚悉尼,她在悉尼大学学习英语文学,并...。
互联网资讯 2024-09-27 15:11:27
回退行为是导航策略的一个重要组成部分,它在用户参与和网站可用性方面发挥着关键作用,当用户在完成操作后希望返回到前一页时,回退行为至关重要,例如当他们成功提交表单或在电子商务网站上完成购买时,回退行为作为导航策略的优点在导航策略中纳入回退行为提供了一些重要的优点,1.改善用户体验回退行为让用户可以轻松返回到前一页,而无需使用浏览器的后退...。
技术教程 2024-09-24 22:45:36
在Web应用程序中,后退按钮是用户用来返回先前浏览过的页面的基本功能,JavaScript提供了强大的API,可以通过window.history.back,方法控制后退按钮的行为,通过巧妙地使用此方法,您可以优化用户体验,提供更流畅、更直观的导航,创建自定义后退行为,使用window.history.back,方法,您可以创建自...。
最新资讯 2024-09-24 22:33:30
概要415不支持的媒体类型错误表示服务器无法接受客户端发送的媒体类型,这通常由客户端和服务器之间媒体类型不匹配引起,本文将提供一个全面的指南来帮助您诊断和解决此错误,诊断要诊断415错误,您需要确定导致错误的根本原因,以下是一些可能的因素,不匹配的媒体类型,客户端发送的媒体类型与服务器接受的媒体类型不匹配,无效的请求正文,客户端发送的...。
互联网资讯 2024-09-24 09:31:39
字形是指字体中每个字符的外观,它的设计和构造极大地影响着可读性,这是文本易于清晰快速阅读的能力,清晰易辨的字形提高了可读性,而复杂或花哨的字形则可能затрудняетпрочтение,阅读困难,字形的特征字形的关键特征包括,笔画,字符中线条或笔画的类型和粗细字间距,字符之间的间距字符高度,字符顶部和底部的垂直距离字宽,字符两侧之...。
最新资讯 2024-09-23 03:40:47
什么是有害物质,有害物质是指任何对人体健康或环境造成危害的物质,这些物质可以是自然产生的,也可以是人造的,有害物质在我们的日常生活中随处可见,从我们使用的清洁产品到我们食用的食物,有害物质对健康的危害有害物质可以通过多种途径进入人体,包括,吸入摄入皮肤接触暴露于不同类型有害物质会产生各种健康问题,包括,癌症生殖问题神经系统损伤器官损伤...。
最新资讯 2024-09-16 09:05:20
项目成本管理是项目管理的一个重要部分,涉及到规划、编制预算和控制项目的成本,有效的成本管理可以帮助确保项目在预算和时间范围内完成,规划成本管理的第一步是规划,这包括,确定项目的范围和目标识别并分析项目成本制定预算在规划阶段,重要的是要考虑项目的风险和不确定性,并制定应变计划,以应对成本超支或其他意外事件,编制预算预算是一份详细的财务计...。
本站公告 2024-09-15 18:52:08
在当今竞争激烈的市场中,企业需要找到一种方法来在竞争对手中脱颖而出,基于客户价值的营销是一种以客户为中心的营销方法,旨在建立长期、有利可图的关系,通过专注于客户的价值,企业可以创建更有针对性的营销活动,从而提高销售额和客户忠诚度,什么是基于客户价值的营销,基于客户价值的营销是一种营销方法,它将目标客户视为独特个体,并根据其价值来对待他...。
技术教程 2024-09-15 18:20:12
简介sprintf,函数是C语言中用于格式化字符串的标准库函数,它允许您使用格式化字符串和可变参数列表来创建格式良好的字符串,语法sprintf,函数的语法如下,cintsprintf,charstr,constcharformat,...,````str`是要格式化的字符串缓冲区,`format`是指定格式的文件格式字符串,`...。
技术教程 2024-09-15 12:06:33
什么是内连接,内连接是数据库中连接两个或多个表格的一种方法,它只保留在两个表格中都存在匹配记录的行,内连接使用以下语法,sqlSELECTFROMtable1INNERJOINtable2ONtable1.column,name=table2.column,name,其中,table1和table2是要连接的两个表格,column,n...。
本站公告 2024-09-14 22:41:04
PHP是一种广泛用于创建动态网站的流行编程语言,有许多PHP建站系统可供选择,每个系统都有其优点和缺点,选择最适合您需求的系统很重要,选择PHP建站系统时需要考虑的因素在选择PHP建站系统时,需要考虑以下因素,您的需求,你需要什么样的功能,您是希望有一个简单的博客还是一个复杂的电子商务网站,您的技能水平,您对PHP和web开发了解多少...。
最新资讯 2024-09-12 02:29:15
引言JSP是JavaServerPages的缩写,是一种基于Java的动态网页技术,它是一种服务器端脚本语言,可以将Java代码嵌入到HTML页面中,从而实现动态网页的开发,在本文中,我们将深入探究JSP源码,了解其幕后工作原理,JSP源码的结构一个JSP文件由以下部分组成,模板文本,XML标记,JSP源码中包含的HTML、XML和...。
技术教程 2024-09-07 16:23:04