VB 如何分别分辨出二个一模一样窗口的句柄来?

来源:百度知道 编辑:UC知道 时间:2024/06/29 19:08:14
比如:我打开了二个无标题记事本窗口,他们的标题一个样,进程也一个样,位置也一个样,完全重叠!请问如何分别获取他们的窗口句柄?请高手帮帮忙啊!感激不尽~~~
最好写点源码哦~

他们的设备场景一定不是一样的!
你若只是单纯的要找到他们的句柄那么用GetNextWindow有很好的效果

你说的这种情况,是要靠遍历进程来获取进程句柄,再由遍历获取窗口句柄,
这都可以靠toolhelp 的

CreateToolhelp32Snapshot
Heap32First
Heap32ListFirst
Heap32ListNext
Heap32Next
Module32First
Module32Next
Process32First
Process32Next
Thread32First
Thread32Next
Toolhelp32ReadProcessMemory

完成

问题是你取来干什么用?如果都是一样的,那么取哪一个不都一样吗?

ID 不会相同的
通过API函数获得记事本的HANDLE,读取其ID
你回发现,他们的ID 是不同的

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 Sub Command1_Click()
Dim h As Long

Do
h = FindWindowEx(0, h, "Notepad", "无标题 - 记事本")
If h = 0 Then Exit Do
Print h
Loop
End Sub