读书人

小弟我用EnumWindows枚举当前所有已打

发布时间: 2012-03-09 21:42:55 作者: rapoo

我用EnumWindows枚举当前所有已打开窗口标题栏名称为何得不到IE和QQ的窗口标题呢?
以下代码可以枚举当前系统所有已打开窗口的标题栏名称。可经过测试发现始终枚举不到 IE 和 QQ 的窗口标题,甚至连记事本写字板的窗口标题都枚举不到。貌似有好多窗口都枚举不到,能枚举到的是一大堆在后台运行的程序窗口,可这些对我没用啊。请问以下代码有什么不对的地方吗?EnumWindows不是可以枚举到屏幕上所有的顶层窗口吗,可我的代码为什么枚举不到呢?

VB code
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As LongPrivate Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String,  ByVal cch As Long) As Long Private Function EnumWndProc(ByVal lhWnd As Long, ByVal lParam As Long) As Long    Dim strWndTextBuff As String * 255&    Dim strWndHeading As String        Call GetWindowText(lhWnd, strWndTextBuff, 255&)    If (InStr(strWndTextBuff, Chr(0&)) > 0&) Then        strWndHeading = Left(strWndTextBuff, InStr(strWndTextBuff, Chr(0&)) - 1&)        Debug.Print strWndHeading    End If    EnumWndProc = TrueEnd Function Call EnumWindows(AddressOf EnumWndProc, 0&)


[解决办法]
做了保护的话FindWindow怎么可以发现?

探讨
的确得不到,它们做了保护。

读书人网 >VB

热点推荐