请教, 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的值为空

请问如何做到如题要求,非常感谢!!!
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
顶一下

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧