RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
vb.net按钮句柄 vbs 窗口句柄

VB.net 获取控件句柄

Dim hwnd0 As Integer

公司主营业务:成都网站设计、成都做网站、外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出平邑免费做网站回馈大家。

Dim hwnd11 As Integer

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

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

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

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

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

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

求vb.net句柄实例,实现操作其他程序窗口。如我给的例子

Imports System.Text

Imports System.Runtime.InteropServices

Public Class Form1

' 相关API函数声明,注释掉的这里没用到,但是也比较常用吧,这些函数的功能都能搜到。

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As IntPtr, ByVal hWnd2 As IntPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As IntPtr

Private Delegate Function EnumChildProc(ByVal hWnd As IntPtr, ByVal lParam As Integer) As Boolean

Private Declare Function EnumChildWindows Lib "user32.dll" (ByVal hWndParent As IntPtr, ByVal lpEnumFunc As EnumChildProc, ByVal lParam As Integer) As Boolean

Private Declare Auto Function SendMessage Lib "User32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer

'Private Declare Function CheckDlgButton Lib "user32" Alias "CheckDLGButtonA" (ByVal hDlg As IntPtr, ByVal nIDButton As IntPtr, ByVal wCheck As Integer) As Integer

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As IntPtr, ByVal lpClassName As StringBuilder, ByVal nMaxCount As Integer) As Integer

'Private Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As IntPtr, ByVal lpdwProcessId As Long) As Integer

Private Declare Auto Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLength" (ByVal hwnd As IntPtr) As Integer

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As IntPtr, ByVal lpString As StringBuilder, ByVal cch As Integer) As Integer

' 相关消息定义,也有没用到的

Const WM_SETTEXT = HC

Const WM_GETTEXT = HD

'Const WM_SETFOCUS = H7

'Const WM_KILLFOCUS = H8

'Const WM_CLOSE = H10

'Const WM_SYSCOMMAND = H112

'Const SC_CLOSE = HF060

'Const SC_MINIMIZE = HF020

Const BM_GETCHECK = HF0

Const BM_SETCHECK = HF1

Const BM_GETSTATE = HF2

Const BM_SETSTATE = HF3

Const BM_SETSTYLE = HF4

Const BM_CLICK = HF5

'Const BM_GETIMAGE = HF6

'Const BM_SETIMAGE = HF7

Const BST_UNCHECKED = O0

Const BST_CHECKED = O1

Const BST_INDETERMINATE = O2

' 储存窗口句柄

Dim WindowHandle As IntPtr

' 储存两个(或者多个)编辑框句柄

Dim EditHandle As New List(Of IntPtr)

Dim EditWindowsText As List(Of String)

' 储存复选框句柄

Dim CheckHandle As IntPtr = 0

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Button1_Click(sender, e)

End Sub

' EnumChildWindows 回调函数,该函数名作为API函数EnumChildWindows 的一个参数

' 该函数实现了枚举各个子窗口,找出编辑框属性的功能

Public Function EnumChildProcC(ByVal hwnd As IntPtr, ByVal lParam As Integer) As Boolean

Dim dwWindowClass As StringBuilder = New StringBuilder(100)

' 获得某一个句柄的类名

GetClassName(hwnd, dwWindowClass, 100)

If dwWindowClass.ToString.Contains("EDIT") Or dwWindowClass.ToString.Contains("Edit") Then     ' 类名包含EDIT的为编辑框

EditHandle.Add(hwnd)                        ' 存储该句柄

End If

' 返回 True 一直枚举完

Return True

End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

WindowHandle = FindWindow(vbNullString, "登陆")

If WindowHandle.ToInt32 = 0 Then

MsgBox("未捕获到窗口" + "登陆")

Return

End If

' 枚举所有主窗口的子窗口(控件),枚举时自动调用回调函数,完成编辑框句柄的获取

EnumChildWindows(WindowHandle, AddressOf EnumChildProcC, 0)

' 寻找复选框

CheckHandle = FindWindowEx(WindowHandle, IntPtr.Zero, vbNullString, "记住密码")

Dim str As New StringBuilder

Dim j As Integer = 0

' 对编辑框文本赋值

For j = 0 To EditHandle.Count - 1

SendMessage(EditHandle(j), WM_SETTEXT, 0, "Text")

'GetWindowText(EditHandle(j), str, 20)

'EditWindowsText.Add(Str.ToString)

'Str.Clear()

Next

If EditHandle.Count = 0 Then

MsgBox("未找到输入框!")

End If        

If CheckHandle.ToInt32  0 Then

'CheckDlgButton(WindowHandle, id, 1)

' 对复选框进行鼠标单击操作

SendMessage(CheckHandle, BM_CLICK, 0, 0)

'SendMessage(CheckHandle, BM_SETCHECK, True, 0)

End If

End Sub

End Class


分享标题:vb.net按钮句柄 vbs 窗口句柄
分享链接:http://sczitong.cn/article/dogicoi.html