vb怎么获取控件句柄和内容

我只知道获取窗口句柄,但是书上讲带全是子窗口和父窗口的。怎么获取控件带呢?请给源代码我。(我知道了窗口句柄,怎么获取控件句柄怎么显示控件带内容)我现在刚学API函数,对于... 我只知道获取窗口句柄,但是书上讲带全是子窗口和父窗口的。怎么获取控件带呢?请给源代码我。(我知道了窗口句柄,怎么获取控件句柄怎么显示控件带内容)我现在刚学API函数,对于那些东西很多不懂,希望见谅。
我要获取的其他程序上窗体的控件
展开
 我来答
匿名用户
2015-08-01
展开全部
  先找到窗口的句柄,再来查找按钮的句柄,如果按钮有文本内容,那就好办,如果没有,那建议你利用SPY++先来察看一下按钮的类型,以此类型为查找参数多次调用FindWindowEx来查找,直到找到的的句柄和Spy++相同,那么这个按钮就找到了。
  按钮类名同样,但是你去遍历的时候它的次序始终是固定的。通过id不可靠,有些有id但是有些id是0。
  clswindow类,里面有个函数etElementHwndByClassName,可以得到指定的次序按钮。加入你要处理的按钮是在第二个次序,类名为Button,那么就用:GetElementHwndByClassName("Button",2),即可,
  具体代码:
  Private Sub Command6_Click()
  Dim w As New clsWindow
  Dim i%
  If w.GetWindowHwndByTitleEx("自动化操作框架") > 0 Then
  i = i + 1
  Do While w.GetElementHwndByClassName("ThunderCommandButton", i) > 0'按次序遍历
  MsgBox w.GetElementHwndByClassName("ThunderCommandButton", i)'得到当前次序按钮的句柄
  w.SetElementTextByClassName "ThunderCommandButton", "次序" & i, i'设置按钮文本
  i = i + 1
  Loop
  End If
  End Sub
百度网友e9042513a
2009-04-10 · TA获得超过6984个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:3511万
展开全部
VB 中 有句柄 hwnd 的控件,就可以通过 API 函数操作
比如 commandbutton,picturebox
没有句柄 hwnd 的控件就不可以
比如 label

通过 API 获取 commandbutton 的Caption

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Private Sub Command1_Click()
Dim i As Long
Dim a As String
i = GetWindowTextLength(Command1.hwnd)
a = String$(i + 1, 0)
GetWindowText Command1.hwnd, a, Len(a)
Print a

End Sub

显示的就是 Command1 的 属性 Caption 值: Command1
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式