vb.net取控件句柄 vb獲取窗口句柄

VB.net 獲取控件句柄

Dim hwnd0 As Integer

創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為武勝等服務(wù)建站,武勝等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為武勝企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

Dim hwnd11 As Integer

第二個是你要生成EXE后 運(yùn)行EXE

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

vb中 如何獲得窗體中所有控件的句柄?

Option Explicit

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

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

Private Declare Function GetDesktopWindow Lib "user32" () As Long

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

Private Const GW_HWNDFIRST = 0

Private Const GW_HWNDNEXT = 2

Private Const GW_CHILD = 5

Private Sub Command1_Click()

Call List1_Click

End Sub

Private Sub Command2_Click()

Dim hwnd As Long

Dim s As String, t As String

List1.Clear

hwnd = GetDesktopWindow()

s = String(256, Chr(0))

GetClassName hwnd, s, 255

s = Replace(s, Chr(0), "")

t = String(256, Chr(0))

GetWindowText hwnd, t, 255

t = Replace(t, Chr(0), "")

List1.AddItem "桌面:" hwnd " 類名:" s " 標(biāo)題:" t vbCrLf

hwnd = GetWindow(hwnd, GW_CHILD Or GW_HWNDFIRST)

s = String(256, Chr(0))

GetClassName hwnd, s, 255

s = Replace(s, Chr(0), "")

t = String(256, Chr(0))

GetWindowText hwnd, t, 255

t = Replace(t, Chr(0), "")

List1.AddItem "窗口:" hwnd " 類名:" s " 標(biāo)題:" t vbCrLf

While hwnd 0

hwnd = GetWindow(hwnd, GW_HWNDNEXT)

s = String(256, Chr(0))

GetClassName hwnd, s, 255

s = Replace(s, Chr(0), "")

t = String(256, Chr(0))

GetWindowText hwnd, t, 255

t = Replace(t, Chr(0), "")

List1.AddItem "窗口:" hwnd " 類名:" s "標(biāo)題:" t vbCrLf

Wend

End Sub

Private Sub Form_Load()

Command1.Caption = "獲取所有控件"

Command2.Caption = "遍歷所有窗體"

End Sub

Private Sub EnumAllHandles(ByVal hwnd As Long)

Dim hn As Long

Dim firsthd As Long

Dim s As String, t As String

firsthd = GetWindow(hwnd, GW_CHILD)

firsthd = GetWindow(firsthd, GW_HWNDFIRST)

hn = firsthd

Do While hn 0

s = String(256, Chr(0))

GetClassName hn, s, 255

s = Replace(s, Chr(0), "")

t = String(256, Chr(0))

GetWindowText hn, t, 255

t = Replace(t, Chr(0), "")

Text1.Text = Text1.Text "句柄:" hn " 父句柄:" hwnd " 類名:" s "標(biāo)題:" t vbCrLf

TreeView1.Nodes.Add "k" hwnd, tvwChild, "k" hn, "句柄:" hn " 類名:" s "標(biāo)題:" t

EnumAllHandles hn

hn = GetWindow(hn, GW_HWNDNEXT)

If hn = firsthd Then Exit Do

Loop

End Sub

Private Sub List1_Click()

If List1.ListIndex = -1 Then Exit Sub

TreeView1.Nodes.Clear

TreeView1.Nodes.Add , , "k" Trim(Str(Val(Mid(List1.Text, 4)))), List1.Text

Text1.Text = ""

EnumAllHandles Val(Mid(List1.Text, 4))

TreeView1.Nodes("k" Trim(Str(Val(Mid(List1.Text, 4))))).Expanded = True

End Sub

'添加兩個按鈕一個文本框一個列表框和一個樹形圖

在VB中,如何獲取鼠標(biāo)所在的點處的控件句柄

Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Type POINTAPI

x As Long

y As Long

End Type

Private Sub Timer1_Timer()

Dim a As POINTAPI

GetCursorPos a

b = WindowFromPoint(a.x, a.y)

Me.Caption = b

End Sub

添加一個timer控件 代碼如上 取得句柄在窗體標(biāo)題處顯示

VB 獲取其他程序控件的句柄

一般是用鉤子程序的。

比較復(fù)雜,只能說個大體思路,要花最少30分鐘。分太少了。

API函數(shù)的聲明就不說了。

先用findwindow找到窗體,用GetWindow和GetClassName獲得其窗體內(nèi)各對象的句柄,從而可以獲得文本框的句柄。

最后用SendMessage函數(shù)想文本框發(fā)送文本。

tWnd = FindWindow(vbNullString, "窗口名")可以獲得外部程序窗口的句柄twnd

bwnd = GetWindow(tWnd, GW_CHILD)可以獲得該窗口子對象的集合句柄bwnd

Do Until bwnd = 0

GetClassName bwnd, sSave, 250

If InStr(1, UCase(sSave), "EDIT", vbTextCompare) 0 Then

editwnd = bwnd

Exit Do

End If

bwnd = GetWindow(bwnd, GW_HWNDNEXT)

Loop

以上代碼可以讀到該窗口中的第一個文本框的句柄editwnd

SendMessage editwnd, WM_SETTEXT, 6, "王小明"

以上代碼向editwnd中寫入“王小明”,6表示其長度。該方法寫入時,文本框中原有內(nèi)容全部覆蓋。

VB 實現(xiàn)取得其他窗口中某控件的句柄

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long'查找控件

Private Declare Function GetForegroundWindow Lib "user32" () As Long'得到當(dāng)前桌面窗體

當(dāng)你桌面有程序激活時,句柄可以通過GetForegroundWindow得到

findWindowEx得到已知句柄窗體中某個控件

vb.net如何找到一個網(wǎng)頁中的按鈕的句柄

網(wǎng)頁中的按鈕沒有句柄可言,只有控件id,你想要的到底是什么,找到按鈕模擬點擊按鈕?

找到按鈕不難,查找input,id是那個按鈕的話就用DOM獲取到,然后發(fā)送.click方法

也可以用附加js腳本的方式來實現(xiàn)點擊那個按鈕,js腳本里實現(xiàn)獲取那個按鈕并點擊

文章題目:vb.net取控件句柄 vb獲取窗口句柄
網(wǎng)頁路徑:http://www.muchs.cn/article10/hphhdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作做網(wǎng)站、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計公司、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)