文章编号:10652时间:2024-09-28人气:
FindWindow 函数在 Windows 应用程序中查找具有指定类名和窗口标题的窗口。
HWND FindWindow(LPCTSTR lpClassName, // 窗口类的名称LPCTSTR lpWindowName // 窗口的标题 );
如果函数成功,它将返回窗口的句柄。如果函数失败,它将返回 NULL。
HWND hwnd = FindWindow("Notepad", NULL);
上面的示例查找一个名为 "Notepad" 的窗口。如果找到该窗口,则 hwnd 将包含窗口的句柄。否则,hwnd 将为 NULL。
❶Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。 在搜索的时候不一定两者都知道,但至少要知道其中的一个。 有的窗口的标题是比较容易得到的,如计算器,所以搜索时应使用标题进行搜索。 但有的软件的标题不是固定的,如记事本,如果打开的文件不同,窗口标题也不同,这时使用窗口类搜索就比较方便。 如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。 前面提到的VB的FindWindow()函数的声明将两个参数都定义为String类型,而在实际使用过程中,如果我们忽略某个参数就将该参数的定义又As String改为As Any。 这里的As Any相当于C语言中的强制类型转换。 例如,如果我们忽略窗口的类,就将定义修改如下: Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long然后,在调用时使用如下语句: hwndCalc = FindWindow(0&, 计算器)这里的0&就表示忽略类名。 需要注意的是FindWindow(0&, 计算器)和FindWindow(, 计算器)有两种完全不同的含义,前者表示忽略窗口的类,而后者表示窗口的类是个空串。 类似的,我们也可以忽略标题而搜索指定的类。 从上面的讨论中可以看出,如果要搜索的外部程序的窗口标题比较容易得到,问题是比较简单的。 可如果窗口的标题不固定或者根本就没有标题,怎么得到窗口的类呢?如果你安装了Visual C++,你可以使用其中的Spy++(如果没有VC++,在VB的盘上也可以找到Spy),在Spy++中有一个FindWindow工具,它允许你使用鼠标选择窗口,然后Spy++会显示这个窗口的类。 在Win32 API中还有一个FindWindowEx,它非常适合寻找子窗口。 用法示例Option Explicit private Declare Function FindWindow Lib user32 Alias FindWindowA ( _ByVal lpClassName As String, _ByVal lpWindowName As String) As Long Private Declare Function PostMessage Lib user32 Alias PostMessageA ( _ByVal hWnd As Long, _ByVal wMsg As Long, _ByVal wParam As Long, lParam As Any) As LongPrivate Declare Function GetClassName Lib user32 Alias GetClassNameA ( _ByVal hWnd As Long, _ByVal lpClassName As String, _ByVal nMaxCount As Long) As LongPrivate Declare Function ShowWindow Lib user32 ( _ByVal hWnd As Long, _ByVal nCmdShow As Long) As LongConst SW_SHOWNORMAL = 1Const WM_CLOSE = &H10Public Sub test()Dim hWnd As Long不知道类名hWnd = FindWindow(vbNullString, 计算器) hWndEnd Sub Public Sub test2()Dim hWnd As Long知道计算器窗口的类名是: SciCalchWnd = FindWindow(SciCalc, vbNullString) hWndEnd Sub Public Sub Test3() Dim hWnd As LongDim lpClassName As StringDim retVal As LonghWnd = FindWindow(vbNullString, 计算器)If hWnd = 0 Then MsgBox Couldnt find the window ...: Exit SubShow the windowShowWindow hWnd, SW_SHOWNORMALCreate a bufferlpClassName = Space(256)retrieve the class nameretVal = GetClassName(hWnd, lpClassName, 256)Show the Classname: + Left(lpClassName, retVal)Post a message to the window to close itPostMessage hWnd, WM_CLOSE, 0&, 0& ❷ MySQL 的 find_in_set函数使用方法很多时候我们在设计数据库时有这种情况,比如:有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等现在有篇文章他既是 头条,又是热点,还是图文,type中以 1,3,4的格式存储.那们我们如何用sql查找所有type中有4图文标准的文章呢,这就要我们的find_in_set出马的时候到了.先看mysql手册中find_in_set函数的语法:FIND_IN_SET(str,strlist)假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。 一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。 如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。 如果str不在strlist 或strlist 为空字符串,则返回值为 0 。 如任意一个参数为NULL,则返回值为 NULL。 这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。 mysql> SELECT FIND_IN_SET(b,a,b,c,d);-> 2用起来很简单就以上面我说到的情况来举例:以下为引用的内容:select * from article where FIND_IN_SET(4,type)
CWnd*phwnd=FindWindow(CFindWindowFunDlg,NULL);前面是类名,后面窗口名。 或者用spy++确认一下类名是否正确。
FindWindowEx说明在窗口列表中寻找与指定条件相符的第一个子窗口返回值Long,找到的窗口的句柄。 如未找到相符窗口,则返回零。 会设置GetLastError参数表参数类型及说明hWnd1Long,在其中查找子的父窗口。 如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)hWnd2Long,从这个窗口后开始查找。 这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。 如设为零,表示从第一个子窗口开始搜索lpsz1String,欲搜索的类名。 零表示忽略lpsz2String,欲搜索的类名。 零表示忽略
解决方法:在调用FindWindow函数的时候,应该第一个参数为空,第二个参数为窗口的标题名。 classname是窗口在创建时的注册名称,不是源代码的类名,通常可以不指定,除非确切地知道。 另外,vc自带一个spy++的工具,可以探查当前所有窗口的信息,包括注册类名。 FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串。 这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。 在搜索的时候不一定两者都知道,但至少要知道其中的一个。
第一步执行EnumWindowsProc API函数第二步,在EnumWindowsProc的回调函数里执行GetWindowThreadProcessId API函数获得Window句柄对应的ProcessID然后判断ProcessID是否和这个游戏的ProcessID一致,就可以拿到窗体句柄了
内容声明:
1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违法信息,如您发现违法内容,请联系我们进行举报处理!
4、本文地址:http://www.jujiwang.com/article/604ac2f4f06729142ec5.html,复制请保留版权链接!
Wireshark是一款强大的网络协议分析器,可用于识别和应对网络攻击,通过捕获和分析网络流量,Wireshark可以提供对网络活动全面的可视性,使安全分析师能够识别异常模式、检测恶意流量并追踪网络攻击,使用Wireshark捕获数据包为了使用Wireshark分析网络流量,您需要先捕获数据包,以下是捕获数据包的步骤,打开Wiresh...。
本站公告 2024-09-27 06:53:01
Linux是一个强大的开源操作系统,被广泛用于服务器、个人电脑和嵌入式系统,要充分利用Linux的功能,了解其命令行和文件系统至关重要,本指南将为您提供一系列视频教程,这些教程将一步一步地指导您了解Linux的基础知识,这些教程适合所有技能水平的初学者,并且涵盖了各种主题,从基本命令到高级文件系统管理,视频教程命令行基础Linux命令...。
本站公告 2024-09-23 11:40:12
简介CORS,跨域资源共享,是一种机制,它允许不同域的网站在特定条件下交换资源,在默认情况下,浏览器出于安全考虑会限制跨域请求,以防止恶意网站窃取敏感数据,如何启用CORS要启用CORS,需要在服务器端进行配置,服务器需要发送HTTP响应头,指示浏览器可以从特定来源访问资源,响应头以下响应头用于启用CORS,`Access,Contr...。
最新资讯 2024-09-16 04:13:33
由业内专家创建,经过数小时的深入讲解什么是JavaScript,JavaScript是一种高级编程语言,用于创建动态、可交互的网页,它是一种客户端脚本语言,这意味着它在用户的浏览器中执行,而不是在服务器端,JavaScript用于以下目的,验证表单输入创建交互式元素,例如下拉菜单和滑块在页面上加载和处理数据创建动画和游戏JavaScr...。
最新资讯 2024-09-16 02:47:14
欢迎来到JavaScript编程的奇妙世界!我们在这里为您提供一系列精心挑选的视频教程,旨在帮助您快速有效地掌握这门必不可少的编程语言,什么是JavaScript,JavaScript,JS,是一种广泛用于Web开发的脚本语言,它是一种基于文本的语言,允许您为Web页面添加交互性和动态行为,从验证表单到创建交互式用户界面,JavaSc...。
本站公告 2024-09-16 02:35:20
引言您的博客模板是您网站的第一印象,它可以决定访问者是否会继续阅读您的文章并探索您的网站,选择正确的模板对于创建一个引人入胜且专业的网站来说至关重要,选择博客模板时需要注意的因素在选择博客模板之前,请考虑以下因素,1.目标受众谁是您目标受众,他们的兴趣和偏好是什么,选择一个与他们的品味和风格相匹配的模板,2.博客内容您博客的内容是什么...。
本站公告 2024-09-14 23:56:39
概述文件上传是Web开发中一项必不可少的任务,它使我们能够从用户接收文件并将其存储在服务器上,PHP提供了强大的功能来处理文件上传,从基本的表单处理到高级的进度跟踪和错误处理,基础知识要启用文件上传,我们需要在HTML表单中使用`enctype=multipart,form,data`属性,这将指示浏览器将表单数据作为多部分数据发送,...。
技术教程 2024-09-08 19:23:57
JavaScript作为一门强大的编程语言,广泛应用于Web开发、移动应用程序开发和游戏开发等领域,要精通JavaScript,需要深入理解其基础和高级功能,JavaScript基础变量和数据类型变量用于存储数据,数据类型决定变量存储数据的类型,JavaScript中的基本数据类型包括,字符串、数字、布尔值和null,undefine...。
本站公告 2024-09-07 15:30:26
JavaScriptreplace,方法是用于在字符串中搜索并替换特定子字符串的强大工具,它可以帮助您修改字符串内容、更正错误或执行其他文本操作,语法replace,方法的语法如下,```string.replace,searchValue,replaceValue,```其中,string是要替换的字符串,searchValue...。
本站公告 2024-09-06 22:38:08
引言织梦仿站是一种通过模仿其他网站的功能和设计来创建新网站的技术,通过遵循业界最佳实践,仿站开发者可以创建可靠且有效的网站,遵守网页标准使用有效的HTML和CSS代码,遵循网络无障碍指南,WCAG,2.0,确保所有用户都可以访问网站,使用响应式设计,让网站在各种设备上都能正常显示,优化网站加载速度,以提高用户体验,确保安全性使用安全套...。
互联网资讯 2024-09-06 07:57:43
Photoshop是一款非常强大的图像处理软件,它可以帮助我们完成各种各样的图像处理任务,但是对于初学者来说,可能会觉得Photoshop非常复杂,不知道从何入手,本篇文章将为大家提供一份从零开始学习Photoshop的基础知识的教程,希望能够帮助大家快速入门,第一章,Photoshop的基础知识在使用Photoshop之前,我们需要...。
技术教程 2024-09-02 01:58:17
苹果手机发烫的原因及解决办法一、发烫原因,1.高负荷运行,长时间使用高耗能应用如游戏、视频编辑等,导致手机处理器高负荷工作,产生大量热量,2.环境气温过高,在高温环境下使用手机,散热效果会受到影响,导致手机温度升高,3.不当使用习惯,如手机被外部覆盖物遮挡,影响散热,或在充电时同时使用手机等,二、解决办法,1.降低负荷,减少长时间高负...。
技术教程 2024-09-02 01:29:37