请教, FindWindow我用的哪里有问题吗??

yunok 2003-12-28 05:47:20
我想获得别人发给我的 信使服务 弹出框的内容,(就是 在2003-12-28 16:23:22 从XXX到123.123.234.234 的消息 DDDDDDDD 这一串)。
我用Handle = FindWindow("#32770", "信使服务")取出来的handle总是0。请问为什么?
可是再往后边:Handle = FindWindowEx(Handle, 0&, "Static", vbNullString)却可以取到一个值。又是为什么??

然后 GetWindowText Handle, MyStr, 100 以后,mystr的值为空

请问如何做到如题要求,非常感谢!!!
...全文
4 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
danielinbiti 2003-12-28
你的得到不是信使服务窗口句柄,是桌面窗口的顶级子窗口句柄,
要实现你的思路,可以用一下代码
in module:
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
Dim sSave As String, Ret As Long
Ret = GetWindowTextLength(hwnd)
sSave = Space(Ret)
GetWindowText hwnd, sSave, Ret + 1
If Trim(sSave) = "信使服务" Then
Form1.Print Str$(hwnd) + " " + sSave
End If
EnumWindowsProc = True
End Function
in form:

Private Sub Command1_Click()
Me.AutoRedraw = True
EnumWindows AddressOf EnumWindowsProc, ByVal 0&
End Sub
通过得到枚举进程来获取
回复
Akun22 2003-12-28
up
回复
yunok 2003-12-28
谢谢帮我UP.
回复
kmzs 2003-12-28
抱歉。up吧
回复
yunok 2003-12-28
没有大侠会吗??
回复
weesky 2003-12-28
我顶. :)
回复
yunok 2003-12-28
顶一下
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告