findwindowex函数用法,用c++设计一个程序,验证后台QQ群 窗口的标题。
findwindowex函数用法,用c++设计一个程序,验证后台QQ群 窗口的标题。详细介绍
本文目录一览: vb里的findwindowex api 怎么用?
首先你这个程序必须正在运行,然后需要先获取输入框所在的父窗口的句柄,然后再获取子控件句柄
dim h0&,h1&
h0=findwindowex(0,0,classname,"abc") '其中的classname是类名,如果类名未知可以用vbnullstring替代,abc是窗体的标题
h1=findwindowex(h0,0,classname,vbnullstring)'对于搜索子控件,可以不提供类名和控件名
如果有多个输入框的话,就需要递归调用findwindowex这个函数
h1=findwindowex(h0,h1,classname,vbnullstring)'直到获取正确的句柄
向输入框传递消息可以用sendmessage或者postmessage,但是具体方法要视输入框类型而定
vb 隐藏已知句柄的窗口 & vb FindWindowEx的用法
隐藏窗口用ShowWindow 或者SetWindowPos
Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
用法ShowWindow a,SW_HIDE (SW_HIDE = 0)
FindWindowEx
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
hWnd1 ---------- Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
hWnd2 ---------- Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
lpsz1 ---------- String,欲搜索的类名。零表示忽略
lpsz2 ---------- String,欲搜索的类名。零表示忽略
托盘图标句柄不知道怎么搞
在VB中如何使用FindWindow或FindWindowEx函数查找某窗体句柄
1.定义一个模块, 内容为:
Option Explicit
Public Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function FindWindowa Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetForegroundWindow Lib "user32" () As Long
2. 给窗口加一个按钮, 在按钮的click事件里写以下内容:
Option Explicit
Private Sub Command1_Click()
Dim hwnd As Long
hwnd = GetForegroundWindow ' FindWindowa("Notepad", "新建 文本文档.txt - 记事本")
Dim str1 As String, len1 As Long
str1 = Space(255) '定义接收字串.
GetWindowText hwnd, str1, 1024
Do While hwnd <> 0
hwnd = GetNextWindow(hwnd, 2) '只有2才表示找下一个窗口
len1 = GetWindowText(hwnd, str1, Len(str1))
If (InStr(1, str1, "记事", 1) > 0) Then
MsgBox "你要的窗口找到了, 它是:" + str1
Exit Sub '这一句看情况修改
End If
Loop
MsgBox "很遣憾, 没有你要找的窗口"
End Sub
3. 测试, 一定会通过..
用c++设计一个程序,验证后台QQ群 窗口的标题。
调用 FindWindow 函数查找一个窗体,腾讯的 QQ 所有窗体类名均为 TXGuiFoundation,因此句柄可以这样得到:
HWND hPointWnd = FindWindow(L'TXGuiFoundation', NULL);
如果打开的 QQ 进程的窗口过多可能会查到其它窗体,此时调用 FindWindowEx,标题传入 NULL,类名依旧是 TXGuiFoundation,然后利用发送 WM_GETTEXT 消息进行获取窗体标题,如果是“QQ”则通常是 QQ 主面板窗体,继续 FindWindowEx 查找下一个窗体,判断标题是否为“QQ”,如此循环即可,函数使用的问题详见 MSDN 或者追问。
vb中API函数findwindow的详细用法?
vb中FindWindow函数可以用来返回窗体的句柄。1、VB6.0中的API声明:Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long2、具体使用:dim i as longi=FindWindow(vbNullString,"窗体的标题")注意:这里的vbNullString是空的,没有任何字符,即不传递。和""空字符串是不一样的!3、例子:有一个标题名字是计算器的窗体或软件,获取这个计算器的句柄Option ExplicitPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Command1_Click() Dim i As Long i = FindWindow(vbNullString, "计算器") msgbox& i '显示窗体句柄End sub
易语言遍历窗口句柄后怎么使用
遍历窗口句柄后,可以通过获取窗口句柄来进行窗口的操作,例如获取窗口标题、窗口大小、窗口位置等。在易语言中,可以使用FindWindow、FindWindowEx、EnumWindows等函数来遍历窗口句柄。这些函数可以获取系统中所有窗口的句柄,并对窗口进行操作。
对于使用遍历窗口句柄的具体步骤,可以按照以下方法进行:
1.使用FindWindow、FindWindowEx、EnumWindows等函数获取窗口句柄;
2.确定需要对哪个窗口进行操作,可以通过窗口标题、类名等信息来确定;
3.根据窗口句柄,使用SendMessage或PostMessage等函数向窗口发送特定的消息来进行操作,例如点击窗口控件、获取窗口标题等。
需要注意的是,在使用遍历窗口句柄的过程中,需要确保对目标窗口的操作是正确的,并且需要遵循窗口操作的规范,避免对系统造成不必要的影响。此外,还需要注意保护好遍历窗口句柄的隐私安全,避免被恶意程序利用。
在易语言中,我们可以使用FindWindow和FindWindowEx函数来枚举窗口句柄。FindWindow函数用于查找顶级窗口,而FindWindowEx函数用于查找子窗口。通过这两个函数,我们可以遍历所有窗口句柄。
一旦获得了窗口句柄,我们就可以使用SendMessage函数向窗口发送消息,用于控制窗口的行为。例如,我们可以使用SendMessage函数向窗口发送WM_CLOSE消息来关闭窗口。
具体来说,我们可以通过以下步骤来遍历窗口句柄并控制窗口行为:
1. 使用FindWindow或FindWindowEx函数查找窗口句柄,可以使用窗口类名或标题来查找。
2. 使用SendMessage函数向窗口发送消息,例如WM_CLOSE消息来关闭窗口。
3. 使用EnumWindows函数来遍历所有窗口句柄,可以在回调函数中进行窗口操作。
需要注意的是,窗口句柄是一种非常重要的系统资源,滥用可能会导致系统崩溃或安全问题。因此,在使用窗口句柄时,务必谨慎操作。
在易语言中,遍历窗口句柄可以使用API函数"EnumWindows"进行实现。该函数可以枚举系统中所有的顶层窗口,并将每个窗口的句柄传递给回调函数进行处理。
一般情况下,遍历窗口句柄可以用于实现窗口相关的操作,例如在多个窗口之间进行切换、查找某个窗口、或者对某个窗口进行操作等。
在使用"EnumWindows"函数时,需要传递一个回调函数的地址,该回调函数会接收到枚举到的每个窗口的句柄。我们可以在回调函数中对窗口进行相关操作。需要注意的是,回调函数的参数必须与"EnumWindows"函数的参数一致。
回调函数的定义如下:
```
Function EnumWindowsProc(hWnd:i32,lParam:lpvoid):i32
```
其中,hWnd表示枚举到的窗口句柄,lParam表示应用程序定义的一个32位值,可以用来传递一些额外的信息给回调函数。
需要注意的是,在使用"EnumWindows"函数时,操作系统会将所有可见的顶层窗口都枚举出来,包括桌面、任务栏、系统窗口等,因此我们需要在回调函数中对窗口进行一定的过滤,只对我们需要的窗口进行操作。
总之,易语言遍历窗口句柄可以使用API函数"EnumWindows"进行实现,并且可以在遍历过程中对窗口进行相关操作,但需要注意过滤无用窗口的情况,以免对系统产生不必要的影响。
遍历窗口句柄后,可以使用 API 函数获取需要操作的窗口句柄,如 FindWindow、FindWindowEx 等函数,获取到窗口句柄后,我们可以使用 SendMessage、PostMessage 等函数发送消息或者直接修改窗口属性。
具体来说,可以使用以下步骤操作:
首先,通过 EnumWindows 函数枚举所有的顶级窗口句柄。接着,使用 GetWindowText 和 GetClassName 函数获得窗口的标题和类名,判断这个窗口是否需要操作。
然后,使用 SendMessage 或 PostMessage 函数,发送对应的消息给窗口句柄,对窗口进行操作。
最后,使用 CloseHandle 函数关闭窗口句柄,释放资源。
需要注意的是,在使用 API 函数的时候,要考虑安全性和稳定性等因素,并且不同窗口可能需要不同的消息,所以需要仔细分析和调试。
以上是对易语言遍历窗口句柄后的使用方法的简单介绍。
VB 获得句柄
a=findwindow(vbnullstring,"记事本")
a就是记事本窗口的句柄了
ChildWindowFromPoint=返回父窗口中包含了指定点的第一个子窗口的句柄
CloseMetaFile=关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
EnumChildWindows=为指定的父窗口枚举子窗口
EnumThreadWindows=枚举与指定任务相关的窗口
EnumWindows=枚举窗口列表中的所有父窗口
FindResource=在一个可执行模块中查找指定的资源,并返回一个资源句柄,以便由实际装载资源的其他函数使用
FindWindow=寻找窗口列表中第一个符合指定条件的顶级窗口
FindWindowEx=在窗口列表中寻找与指定条件相符的第一个子窗口
GetActiveWindow=获得活动窗口的句柄
GetCapture=获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
GetCurrentProcess=获取当前进程的一个伪句柄
GetCurrentProcessId=获取当前进程一个唯一的标识符
GetCurrentThread=获取当前线程的一个伪句柄
GetCurrentThreadId=获取当前线程一个唯一的线程标识符
GetCursor=获取目前选择的鼠标指针的句柄
GetEnvironmentStrings=为包含了当前环境字串设置的一个内存块分配和返回一个句柄
GetFocus=获得拥有输入焦点的窗口的句柄
GetForegroundWindow=获得前台窗口的句柄
GetKeyboardLayout=取得一个句柄,描述指定应用程序的键盘布局
GetLastActivePopup=获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
GetParent=判断指定窗口的父窗口
GetProp=为指定的属性获取整数数据句柄
GetTopWindow=搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
IsWindow=判断一个窗口句柄是否有效
WindowFromDC=取回与某一设备场景相关的窗口的句柄
请参考MSDN
易语言FindwindowExA函数如何取所有句柄
如图所示,本函数在DLL命令中添加,数组所有子句柄保存所有组件句柄
如图所示,本函数在DLL命令中添加,数组所有子句柄保存所有组件句柄
易语言是一门计算机编程语言。以“易”著称,以中文作为程序代码表达的语言形式。易语言的创始人是吴涛。早期版本的名字为E语言。易语言最早的版本的发布可追溯至2000年9月11日。创造易语言的初衷是进行用中文来编写程序的实践。从2000年至今,易语言已经发展到一定的规模,功能上、用户数量上都十分可观。2015年计划推出移动版编程工具,用于编译安卓系统手机APP!
如何向另外一个窗体发送点击某一按钮的消息
先用FindWindow函数找到程序句柄,再用findWindowEx扭句柄,然后调用sendmessage函数发送消息即可
Declare Function SendMessage Lib “user32" Alias “SendMessageA" (ByVal hwnd
As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
SendMessage函数的hwnd参数为接收消息的窗口或控件的hwnd句柄。wMsg参数指定具体的消息值。要发送鼠标左键按下和释放的消息,wMsg的取值分别为WM_LBUTTONDOWN和WM_LBUTTONUP,这两个常量定义如下:
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
把这两个消息发送给一个按钮,按钮就会像真的被鼠标左键单击了一样。SendMessage函数中的后两个参数在本例中可以不理,简单置0即可。
还有一点细节需注意。如果连续给按钮发送一对WM_LBUTTONDOWN和WM_LBUTTONUP消息,Windows会来不及进行一些必要的系统操作,这样在视觉上就看不出按钮被按下后又放开的效果,好像按钮没有按动。但按钮的Click事件处理过程被激活执行表明按钮确实被按过。为了达到视觉上的完美效果,我们不妨在WM_LBUTTONDOWN和WM_LBUTTONUP两个消息之间插入一段短短的延时,比如说200毫秒,在这段延时期间,把处理权交给Windows,这样Windows就有时间显示按钮被按下的效果了。插入延时的办法有很多,可以加入一段空循环或利用计时器控件,这里再介绍一个API函数GetTickCount,该函数获取自Windows启动至被调用时所经过的毫秒数。利用这个函数控制延时,不仅精确,而且节省资源。
GetTickCount 函数的接口声明如下:
Declare Function GetTickCount Lib “kernel32" () As Long
====================CODE:
Private eclare Function GetTickCount Lib “kernel32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) 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 FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim tWnd As Long, bWnd As Long, ncWnd As Long
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
Private Sub Command1_Click()
tWnd = FindWindow("Shell_TrayWnd", vbNullString)
bWnd = FindWindowEx(tWnd, ByVal 0&, "BUTTON", vbNullString)
SendMessage bWnd, WM_LBUTTONDOWN, 0, ByVal O&
GetTickCount
SendMessage bWnd, WM_LBUTTONUP, 0, ByVal O&
End Sub这个例子展示点“开始”按扭