资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

获取句柄vb.net6 获取句柄会被检测到吗

vb.net如何找到一个网页中的按钮的句柄

网页中的按钮没有句柄可言,只有控件id,你想要的到底是什么,找到按钮模拟点击按钮?

我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、湘东ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的湘东网站制作公司

找到按钮不难,查找input,id是那个按钮的话就用DOM获取到,然后发送.click方法

也可以用附加js脚本的方式来实现点击那个按钮,js脚本里实现获取那个按钮并点击

vb 获取窗口句柄

'创建一个列表框和一个按钮

'API函数定义

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 ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Const GW_HWNDFIRST = 0

Const GW_HWNDNEXT = 2

Private Sub Command1_Click()

Dim s As Long

Dim a As String

a = Space(255)

s = GetWindow(Me.hwnd, GW_HWNDFIRST) '获得句柄

GetWindowText s, a, 255 '获得标题

Dim ab As String * 255

GetClassName s, ab, 255 '获得类名

Dim ClassName As String

ClassName = StripTerFlag(ab) 'StripTerFlag是一个自定义函数,后面有代码,用于去处结束符

If UCase(ClassName) = "NOTEPAD" Then

List1.AddItem a

List1.ItemData(List1.ListCount - 1) = s

End If

Do While s

DoEvents

s = GetWindow(s, GW_HWNDNEXT) '获得句柄

GetWindowText s, a, 255 '获得标题

GetClassName s, ab, 255 '获得类名

ClassName = StripTerFlag(ab)

If UCase(ClassName) = "NOTEPAD" Then

List1.AddItem a

List1.ItemData(List1.ListCount - 1) = s

End If

Loop

End Sub

Private Sub List1_Click()

MsgBox List1.ItemData(List1.ListIndex) '单击列表框获得句柄

End Sub

VB.net 获取控件句柄

Dim hwnd0 As Integer

Dim hwnd11 As Integer

第二个是你要生成EXE后 运行EXE

第三就是没好像没有文本框控件

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

 先找到窗口的句柄,再来查找按钮的句柄,如果按钮有文本内容,那就好办,如果没有,那建议你利用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


当前标题:获取句柄vb.net6 获取句柄会被检测到吗
文章出自:http://cdkjz.cn/article/dosgiog.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220