方法有好多种
1如果窗口置于最顶层的话可以用FindWindow
窗口句柄=FindWindow(窗口类名,
vbNullString)
2如果窗口是子窗口,先得知他的标识ID,再用GetDlgItem
窗口句柄=GetDlgItem(父窗口句柄,
标识ID)
3还可以用GetWindow找与某源窗口有特定的关系
窗口句柄=GetWindow(父窗口句柄,GW_CHILD)
GetWindow第二个参数的介绍:
GW_CHILD
寻找源窗口的第一个子窗口
GW_HWNDFIRST
为一个源子窗口寻找第一个兄弟(同级)窗口,或寻找第一个顶级窗口
GW_HWNDLAST
为一个源子窗口寻找最后一个兄弟(同级)窗口,或寻找最后一个顶级窗口
GW_HWNDNEXT
为源窗口寻找下一个兄弟窗口
GW_HWNDPREV
为源窗口寻找前一个兄弟窗口
GW_OWNER
寻找窗口的所有者
它是一个子窗口,没有标题,每次登陆时类名就变了,怎么得到它的窗口句柄呢?用Findwindow没用啊!
你是什么语言??VB还是C++?
给你个VB CODE :
Function GetQQpath()
Dim ps, s '获取QQ进程所存在的路径
s = "qqexe"
For Each ps In GetObject("winmgmts:\\\root\cimv2:win32_process")instances_ '循环进程
If UCase(psName) = UCase(s) Then
Form1Label1Caption = psexecutablepath
GoTo q
End If
Next
q:
End Function
这个可以用知道进程名就可以知道程序路径了,原理很简单。自己摸索、
(针对新手: 结果显示在label1上面。否则会出现缺少对象)
您好,您可以参考以下代码:
Private Declare Function GetDesktopWindow Lib "user32" () As LongPrivate 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
如果本次回答对您有帮助,请您采纳以支持我们的发展,谢谢!!
获取句柄方式有很多种
比如:
Hwnd = PluginWindowMousePoint()//得到鼠标指向窗口
Hwnd = PluginWindowForeground()//得到当前最前面的窗口
上面两个是常用的 下面这个比较复杂一些
Hwnd = PluginWindowFind(0, "无标题 - 记事本")//通过类名标题查找窗口句柄
希望能帮助到你
我哦 谢谢
以上就是关于VB中如何获取未知标题的窗口句柄全部的内容,包括:VB中如何获取未知标题的窗口句柄、通过api获取窗口句柄是通过类名和标题得到,如果我软件标题不固定。还有什么其它的方法得到窗口句柄、在VB中,如何通过FindWindow查找已知标题中的一部分文字的窗口的句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)