在VB中,如何通过FindWindow查找已知标题中的一部分文字的窗口的句柄...
发布网友
发布时间:2024-07-16 00:42
我来回答
共2个回答
热心网友
时间:2024-08-01 09:03
您好,您可以参考以下代码:
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
private sub getprocessname()
Dim lngDeskTopHandle As Long
Dim lngHand As Long
Dim strName As String * 255
dim a as long
lngDeskTopHandle = GetDesktopWindow()
lngHand = GetWindow(lngDeskTopHandle, GW_CHILD)
Do While lngHand <> 0
GetWindowText lngHand, strName, Len(strName)
lngHand = GetWindow(lngHand, GW_HWNDNEXT)
If Left$(strName, 1) <> vbNullChar Then
if instr(strname , "123") then
a = FindWindow(vbNullString, CStr(strName))'此处a即所需句柄,您可以在此处中断并获取该句柄,或将句柄数据写入数组以获取所有包含"123"的窗口句柄
end if
End If
Loop
如果本次回答对您有帮助,请您采纳以支持我们的发展,谢谢!!
热心网友
时间:2024-08-01 09:03
我也不知道怎么搞的我也等待 .
在VB中,如何通过FindWindow查找已知标题中的一部分文字的窗口的句柄
Private Declare Function GetDesktopWindow Lib "user32" () As LongPrivate Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As LongPrivate Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As Str...
VB 如何得到窗体内控件的句柄
1、findwindow 找到指定标题的窗口 如果这个窗口标题你不知道,那么一个一个遍历吧,或者枚举所有进程(进程名字你总是知道的吧?)然后在遍历整个进程中所有的窗口。通过以上的方法,可以定位到窗口 2、GetWindow 到这个窗口里找控件 使用 GW_CHILD 常数,这样找到的就是这个窗体的子窗体(控件)的句柄了...
VB中如何获取未知标题的窗口句柄?
1.如果窗口置于最顶层的话可以用FindWindow 窗口句柄=FindWindow(窗口类名, vbNullString)2.如果窗口是子窗口,先得知他的标识ID,再用GetDlgItem 窗口句柄=GetDlgItem(父窗口句柄, 标识ID)3.还可以用GetWindow找与某源窗口有特定的关系 窗口句柄=GetWindow(父窗口句柄,GW_CHILD)GetWindow第二个参数的介绍...
在VB中如何使用FindWindow或FindWindowEx函数查找某窗体句柄
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 S...
vb6.0 如何使用findwondow获得某窗口的句柄?比如下面这些……
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LonglpClassName参数指向类名,lpWindowName指向窗口名,如果有指定的类名和窗口的名字则表示成功返回一个窗口的句柄。否则返回零。'下面的代码为获取标题为“QQ”的窗体...
VB 如何从一个标题为空的窗体获取该窗体的句柄
尝试用findwindow(类名,"")获取句柄 lpWindowName [in] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.指向一个空结束的字符串,指定窗口名(窗口标题)。如果该参数为NULL,所有窗口的名称匹配...
怎样用VB抓取窗口的句柄?
找窗体的句柄得用到API了,最常用的是:FindWindow(一般只找父窗口句柄),FindWindowEx(可找子窗口的句柄),给个例子看看,只用到一个command控件,希望可以帮到你,不了解可以再咨询:Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As ...
VB查找窗口句柄有哪些方法
我以前写辅助的时候弄过使用的API函数是findWindow首先声明一下API在你窗口最顶的位置上写上Private Declare Function 取窗口句柄 Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long'由于VB支持中文的 我就定义成 取窗口句柄 这个了 '在窗体中...
只知道窗口标题的一部分,如何找到其句柄
HWND FindWindowByPart(char *str)str:窗口标题的已知部分;返回:桌面上第一个符合搜索条件的窗口句柄。需要说明的是,这个函数假设标题的已知部分是标题的开始部分。如果不一定是开始部分,需要把 if (strncmp(buf, ((MYPARM *)p)->str, strlen(((MYPARM *)p)->str))==0)修改为:if (...
VB如何获得相应窗体的句柄和按钮
这个问题比较复杂,需要遍历所有窗口的标题,判断有没有适合的窗口,不过,获得响应窗体的按钮句柄就不容易实现了,可以试着将该窗体激活,使用SendMessage发送信息。