vb如何获得当前活动窗口的标题

hglai 2005-03-27 04:25:24
vb如何获得windows中当前活动窗口的标题或者是句柄(hwnd)
...全文
915 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzzwwz 2005-03-27
  • 打赏
  • 举报
回复
我也试过,GetActiveWindow 有时候不灵。GetForegroundWindow 这个倒是不错,我试验过,如果从别的程序切换到你的程序过程中,如果你的程序窗口不可见,该函数会返回零。
hglai 2005-03-27
  • 打赏
  • 举报
回复
Private Declare Function GetActiveWindow Lib "user32" () As Long

Private Sub Timer1_Timer()
Text1.Text = Text1.Text & vbCrLf & GetActiveWindow()
End Sub

就上面的代码,当切换到别的程序时,用GetActiveWindow()返回的值为零
不知道为什么
如过程序本身是活动的,那就是个长整行的数,结构选了一部分如下

Text1
8128126
8128126
0
0
8128126
8128126
wzzwwz 2005-03-27
  • 打赏
  • 举报
回复
GetActiveWindow

VB声明
Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
说明
获得活动窗口的句柄
返回值
Long,活动窗口的句柄,如没有窗口处于活动状态,则返回零值

GetWindowText

VB声明
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
说明
取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性)
返回值
Long,复制到lpString的字串长度;不包括空中止字符。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,欲获取文字的那个窗口的句柄
lpString String,预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
cch Long,lpString缓冲区的长度
注解
不能用它从另一个应用程序的编辑控件中获取文字


wzzwwz 2005-03-27
  • 打赏
  • 举报
回复
GetForegroundWindow

VB声明
Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long
说明
获得前台窗口的句柄。这里的“前台窗口”是指前台应用程序的活动窗口
返回值
Long,前台窗口的句柄
注解
windows nt支持多个桌面,它们相互间是独立的。每个桌面都有自己的前台窗口

1,486

社区成员

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

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