首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

为啥GetWindowText有时好使有时不灵光?

2013-01-11 
为什么GetWindowText有时好使有时不灵光??本帖最后由 ihomer 于 2012-07-03 21:21:18 编辑现有:Public Dec

为什么GetWindowText有时好使有时不灵光??
本帖最后由 ihomer 于 2012-07-03 21:21:18 编辑 现有:
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Public Function WinText(hwnd As Long) As String
'按句柄取标题
Dim myString As String * 255
Dim MyInteger As Integer
MyInteger = Len(myString) - 1
If hwnd <> 0 Then
    GetWindowText hwnd, myString, MyInteger
End If
WinText = myString
End Function

试验过程如下:
1. 先用Acrobat 7.0随便打开一个pdf,再定位至第3页。
2. 用Spy++对准Acrobat 7底部的页码显示框,可以探测到类名“Edit”,窗口标题“3 of 24”,窗口句柄198306,
3. 调用上述函数,Msgbox WinText(198306),显示为空白
4. 用Spy++查看父窗口句柄198300,标题“AVPageNumView”
5. 此时调用Msgbox WinText(198300),可以完美弹出消息“AVPageNumView”

请问,上述的WinText函数构造有啥问题么?

对于上例,为什么可以显示出父窗口的标题而子窗口就不行了,但是Spy++显示两个窗口都是有标题的啊,求大神们解释/斧正……
[解决办法]
应该是该句柄所对应的控件上没有文字,因为你看到的文字可能是图片
[解决办法]
非标准的控件?
纯猜测,因为我也遇到过各种奇怪控件得不到文本……不过Edit……
[解决办法]

引用:
引用:

应该是该句柄所对应的控件上没有文字,因为你看到的文字可能是图片


绝对是文字啊,Spy++取到的“3 of 24”那不是盖的啊,都可以用鼠标来描黑/复制/粘贴

你有没有看过GetWindowText的返回值,也就是是否读取成功??

热点排行