一、易语言FindwindowExA函数如何取所有句柄
1、如图所示,本函数在DLL命令中添加,数组所有子句柄保存所有组件句柄
2、易语言是一门计算机编程语言。以“易”著称,以中文作为程序代码表达的语言形式。易语言的创始人是吴涛。早期版本的名字为E语言。易语言最早的版本的发布可追溯至2000年9月11日。创造易语言的初衷是进行用中文来编写程序的实践。从2000年至今,易语言已经发展到一定的规模,功能上、用户数量上都十分可观。2015年计划推出移动版编程工具,用于编译安卓系统手机APP!
二、FindWindowEx用法怎么用
1、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
2、看里面的参数,第一个和第二个:ByVal hWnd1 As Long,ByVal hWnd2 As Long,这里都需要传入句柄,再看第三个和第四个:ByVal lpsz1 As String, ByVal lpsz2 As String,这里所要传入的是字符串。具体意思如下:
3、hWnd1---------- Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
4、hWnd2---------- Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
5、lpsz1---------- String,欲搜索的类名。零表示忽略,注意一般传入vbNullString
6、lpsz2---------- String,欲搜索的类名。零表示忽略,注意一般传入vbNullString
7、用实践帮我们分析,这里还是拿记事本开刀。打开一个记事本,新建一个标准EXE,接着新建一个CommandButton,Caption设置为:设置文本。OK,写入以下代码:
8、Private Declare Function FindWindow Lib"user32" Alias"FindWindowA"(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
9、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
10、Private Declare Function EnableWindow Lib"user32"(ByVal hwnd As Long, ByVal fEnable As Long) As Long
11、Dim WindowHandle As Long, ChildWindowHandle As Long
12、WindowHandle= FindWindow(vbNullString,"无标题-记事本")
13、If WindowHandle Then'如果获取句柄成功
14、ChildWindowHandle= FindWindowEx(WindowHandle, 0,"Edit", vbNullString)
15、If ChildWindowHandle Then'如果成功获取子句柄
16、EnableWindow ChildWindowHandle, False'禁用子窗口
17、好了,帮大家分析。看第一行:Dim WindowHandle As Long, ChildWindowHandle As Long,用于储存获取的句柄的。WindowHandle= FindWindow(vbNullString,"无标题-记事本")这个就不用讲了,上面已经讲过。
18、ChildWindowHandle= FindWindowEx(WindowHandle, 0,"Edit", vbNullString),这一段是通过我们已经获取的记事本句柄获取其中的子窗口句柄。大家可以用Spy++查看到记事本的TextBox类,然后根据类名写入即可。
19、EnableWindow ChildWindowHandle, False这又是一个新的API,虽然前面我没有前过,但是这个API使用起来及其简单。这个API中有两个参数,第一个理所当然是传入窗口句柄,第二个为Long变量,其实这里应该设为Boolean变量好些,主要是用来处理当前窗口是否可用。True可用,False禁用。
20、现在F5运行,记得打开记事本哦,然后点击Command1,看看能不能在记事本的文本框中输入字符串?是否被禁用了?
三、FindWindowExA 怎么找文本框的句柄。最好有原码
1、楼上诸位说得满多的,但是有一点没有提到
2、楼主是找DX游戏里面的子窗口句柄吗?如果是DX游戏里面的,一般来说是无法获得的,因为它的子窗口是画的,
3、首先下载一个spy++看看可不可以查到句柄,如果查不到,那就是画的窗口,没有句柄,如果可以找到,则代码如下
4、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
5、'如果窗口类名或者标题不能确定则参数设置为 vbNullString
6、'如果已知要找的子窗口位于某另一个子窗口之后,则把第2个参数 0改为另一个子窗口句柄
7、 MyHwnd= FindWindowEx(父窗口句柄, 0,子窗口类名,子窗口标题)
关于findwindowexa到此分享完毕,希望能帮助到您。