vb中 如何获得窗体中所有控件的句柄

vb中 如何获得窗体中所有控件的句柄,第1张

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

List1Clear

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), "")

List1AddItem "桌面:" & hwnd & " 类名:" & s & " 标题:" & 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), "")

List1AddItem "窗口:" & hwnd & " 类名:" & s & " 标题:" & 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), "")

List1AddItem "窗口:" & hwnd & " 类名:" & s & "标题:" & t & vbCrLf

Wend

End Sub

Private Sub Form_Load()

Command1Caption = "获取所有控件"

Command2Caption = "遍历所有窗体"

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), "")

Text1Text = Text1Text & "句柄:" & hn & " 父句柄:" & hwnd & " 类名:" & s & "标题:" & t & vbCrLf

TreeView1NodesAdd "k" & hwnd, tvwChild, "k" & hn, "句柄:" & hn & " 类名:" & s & "标题:" & t

EnumAllHandles hn

hn = GetWindow(hn, GW_HWNDNEXT)

If hn = firsthd Then Exit Do

Loop

End Sub

Private Sub List1_Click()

If List1ListIndex = -1 Then Exit Sub

TreeView1NodesClear

TreeView1NodesAdd , , "k" & Trim(Str(Val(Mid(List1Text, 4)))), List1Text

Text1Text = ""

EnumAllHandles Val(Mid(List1Text, 4))

TreeView1Nodes("k" & Trim(Str(Val(Mid(List1Text, 4)))))Expanded = True

End Sub

'添加两个按钮一个文本框一个列表框和一个树形图

'这是一个获取文件信息的程序

form部分

Private Sub DisplayVerInfo()

' 这个子程序获取文件的版本信息

Dim rc As Long

Dim lDummy As Long

Dim sBuffer() As Byte

Dim lBufferLen As Long

Dim lVerPointer As Long

Dim udtVerBuffer As VS_FIXEDFILEINFO

Dim lVerbufferLen As Long

Dim aBuffer() As Byte

Dim lAdd As Long

Dim astr As String

Dim lTran As Long

' Get size

lBufferLen = GetFileVersionInfoSize(FullFileName, lDummy)

If lBufferLen < 1 Then

MsgBox "无法获取文件版本信息!"

Exit Sub

End If

' 获取文件信息并且保存到udtVerBuffer结构中

ReDim sBuffer(lBufferLen)

rc = GetFileVersionInfo(FullFileName, 0&, lBufferLen, sBuffer(0))

rc = VerQueryValue(sBuffer(0), "\", lVerPointer, lVerbufferLen)

MoveMemory udtVerBuffer, lVerPointer, Len(udtVerBuffer)

StrucVer = Format$(udtVerBufferdwStrucVersionh) & "" & _

Format$(udtVerBufferdwStrucVersionl)

' 获得文件版本

FileVer = Format$(udtVerBufferdwFileVersionMSh) & "" & _

Format$(udtVerBufferdwFileVersionMSl) & "" & _

Format$(udtVerBufferdwFileVersionLSh) & "" & _

Format$(udtVerBufferdwFileVersionLSl)

' 获取产品版本

ProdVer = Format$(udtVerBufferdwProductVersionMSh) & "" & _

Format$(udtVerBufferdwProductVersionMSl) & "" & _

Format$(udtVerBufferdwProductVersionLSh) & "" & _

Format$(udtVerBufferdwProductVersionLSl)

' 获取文件类型

FileFlags = ""

If udtVerBufferdwFileFlags And VS_FF_DEBUG _

Then FileFlags = "Debug "

If udtVerBufferdwFileFlags And VS_FF_PRERELEASE _

Then FileFlags = FileFlags & "PreRel "

If udtVerBufferdwFileFlags And VS_FF_PATCHED _

Then FileFlags = FileFlags & "Patched "

If udtVerBufferdwFileFlags And VS_FF_PRIVATEBUILD _

Then FileFlags = FileFlags & "Private "

If udtVerBufferdwFileFlags And VS_FF_INFOINFERRED _

Then FileFlags = FileFlags & "Info "

If udtVerBufferdwFileFlags And VS_FF_SPECIALBUILD _

Then FileFlags = FileFlags & "Special "

If udtVerBufferdwFileFlags And VFT2_UNKNOWN _

Then FileFlags = FileFlags "Unknown "

' 获取文件所适应的 *** 作系统

Select Case udtVerBufferdwFileOS

Case VOS_WINDOWS32

FileOS = "Win32位 *** 作系统"

Case VOS_WINDOWS16

FileOS = "Win16位 *** 作系统"

Case VOS_DOS

FileOS = "DOS *** 作系统"

Case VOS_DOS_WINDOWS16

FileOS = "DOS-Win16 *** 作系统"

Case VOS_DOS_WINDOWS32

FileOS = "DOS-Win32 *** 作系统"

Case VOS_OS216_PM16

FileOS = "OS/2-16 PM-16 *** 作系统"

Case VOS_OS232_PM32

FileOS = "OS/2-16 PM-32 *** 作系统"

Case VOS_NT_WINDOWS32

FileOS = "NT-Win32 *** 作系统"

Case Else

FileOS = "未知 *** 作系统"

End Select

Select Case udtVerBufferdwFileType

Case VFT_APP

FileType = "应用程序"

Case VFT_DLL

FileType = "动态连接库"

Case VFT_DRV

FileType = "驱动程序"

Select Case udtVerBufferdwFileSubtype

Case VFT2_DRV_PRINTER

FileSubType = "打印驱动程序"

Case VFT2_DRV_KEYBOARD

FileSubType = "键盘驱动程序"

Case VFT2_DRV_LANGUAGE

FileSubType = "语言模块"

Case VFT2_DRV_DISPLAY

FileSubType = "显示驱动程序"

Case VFT2_DRV_MOUSE

FileSubType = "鼠标驱动程序"

Case VFT2_DRV_NETWORK

FileSubType = "网络驱动程序"

Case VFT2_DRV_SYSTEM

FileSubType = "系统驱动程序"

Case VFT2_DRV_INSTALLABLE

FileSubType = "Installable"

Case VFT2_DRV_SOUND

FileSubType = "声音驱动程序"

Case VFT2_DRV_COMM

FileSubType = "串行驱动程序"

Case VFT2_UNKNOWN

FileSubType = "未知驱动程序"

End Select

Case VFT_FONT

FileType = "字体"

Select Case udtVerBufferdwFileSubtype

Case VFT_FONT_RASTER

FileSubType = "光栅字体"

Case VFT_FONT_VECTOR

FileSubType = "矢量字体"

Case VFT_FONT_TRUETYPE

FileSubType = "TrueType字体"

End Select

Case VFT_VXD

FileType = "VxD"

Case VFT_STATIC_LIB

FileType = "Lib"

Case Else

FileType = "未知"

End Select

Form1CurrentX = 4

Form1CurrentY = 4

Form1Print "文件全路径:"

Form1CurrentX = 4

Form1Print "文件版本:"

Form1CurrentX = 4

Form1Print "产品版本:"

Form1CurrentX = 4

Form1Print "文件标志:"

Form1CurrentX = 4

Form1Print " *** 作系统:"

Form1CurrentX = 4

Form1Print "文件类型:"

Form1CurrentX = 4

Form1Print "文件子类型:"

Form1CurrentX = 60

Form1CurrentY = 4

Form1Print FullFileName

Form1CurrentX = 60

Form1Print FileVer

Form1CurrentX = 60

Form1Print ProdVer

Form1CurrentX = 60

Form1Print FileFlags

Form1CurrentX = 60

Form1Print FileOS

Form1CurrentX = 60

Form1Print FileType

Form1CurrentX = 60

Form1Print FileSubType

'清除上一次保存的信息

FullFileName = ""

FileVer = ""

ProdVer = ""

FileFlags = ""

FileOS = ""

FileType = ""

FileSubType = ""

ReDim aBuffer(lBufferLen)

Dim ab As VS_NEWINFO

lVerPointer = 0

rc = GetFileVersionInfo(FullFileName, 0&, lBufferLen, sBuffer(0))

rc = VerQueryValue(sBuffer(0), "\VarFileInfo\Translation", lVerPointer, lVerbufferLen)

MoveMemory lTran, lVerPointer, 4&

astr = "0" Hex$(lTran)

astr = Right$(astr, 4) Left$(astr, 4)

rc = VerQueryValue(sBuffer(0), "\StringFileInfo\" astr "\FileDescription", lVerPointer, lVerbufferLen)

MoveMemory ab, lVerPointer, Len(ab)

Form1CurrentX = 4

Form1Print "文件描述";

Form1CurrentX = 60

Form1Print Left$(abastr, (InStr(abastr, Chr$(0)) - 1))

rc = VerQueryValue(sBuffer(0), "\StringFileInfo\" astr "\ProductName", lVerPointer, lVerbufferLen)

If rc Then

MoveMemory ab, lVerPointer, Len(ab)

Form1CurrentX = 4

Form1Print "产品名称";

Form1CurrentX = 60

Form1Print Left$(abastr, (InStr(abastr, Chr$(0)) - 1))

End If

rc = VerQueryValue(sBuffer(0), "\StringFileInfo\" astr "\OriginalFilename", lVerPointer, lVerbufferLen)

If rc Then

MoveMemory ab, lVerPointer, Len(ab)

Form1CurrentX = 4

Form1Print "文件原始名";

Form1CurrentX = 60

Form1Print Left$(abastr, (InStr(abastr, Chr$(0)) - 1))

End If

rc = VerQueryValue(sBuffer(0), "\StringFileInfo\" astr "\InternalName", lVerPointer, lVerbufferLen)

If rc Then

MoveMemory ab, lVerPointer, Len(ab)

Form1CurrentX = 4

Form1Print "文件内部名";

Form1CurrentX = 60

Form1Print Left$(abastr, (InStr(abastr, Chr$(0)) - 1))

End If

rc = VerQueryValue(sBuffer(0), "\StringFileInfo\" astr "\CompanyName", lVerPointer, lVerbufferLen)

If rc Then

MoveMemory ab, lVerPointer, Len(ab)

Form1CurrentX = 4

Form1Print "公司名称";

Form1CurrentX = 60

Form1Print Left$(abastr, (InStr(abastr, Chr$(0)) - 1))

End If

rc = VerQueryValue(sBuffer(0), "\StringFileInfo\" astr "\LegalCopyright", lVerPointer, lVerbufferLen)

If rc Then

MoveMemory ab, lVerPointer, Len(ab)

Form1CurrentX = 4

Form1Print "版权所有";

Form1CurrentX = 60

Form1Print Left$(abastr, (InStr(abastr, Chr$(0)) - 1))

End If

End Sub

Private Sub Command1_Click()

Form1Cls

CommonDialog1ShowOpen

FullFileName = CommonDialog1Filename

If FullFileName = "" Then

Exit Sub

End If

Call DisplayVerInfo

End Sub

模块部分

' 全局定义

Public Filename As String

Public Directory As String

Public FullFileName As String

Public StrucVer As String

Public FileVer As String

Public ProdVer As String

Public FileFlags As String

Public FileOS As String

Public FileType As String

Public FileSubType As String

Type VS_NEWINFO

astr As String 1024

End Type

Type VS_FIXEDFILEINFO

dwSignature As Long

dwStrucVersionl As Integer

dwStrucVersionh As Integer

dwFileVersionMSl As Integer

dwFileVersionMSh As Integer

dwFileVersionLSl As Integer

dwFileVersionLSh As Integer

dwProductVersionMSl As Integer

dwProductVersionMSh As Integer

dwProductVersionLSl As Integer

dwProductVersionLSh As Integer

dwFileFlagsMask As Long

dwFileFlags As Long

dwFileOS As Long

dwFileType As Long

dwFileSubtype As Long

dwFileDateMS As Long

dwFileDateLS As Long

End Type

Declare Function GetFileVersionInfo Lib "Versiondll" Alias _

"GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal _

dwhandle As Long, ByVal dwlen As Long, lpData As Any) As Long

Declare Function GetFileVersionInfoSize Lib "Versiondll" Alias _

"GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, _

lpdwHandle As Long) As Long

Declare Function VerQueryValue Lib "Versiondll" Alias _

"VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, _

lplpBuffer As Any, puLen As Long) As Long

Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" _

(dest As Any, ByVal Source As Long, ByVal length As Long)

Declare Function GetSystemDirectory Lib "kernel32" Alias _

"GetSystemDirectoryA" (ByVal Path As String, ByVal cbBytes As Long) As Long

Public Const VS_FFI_SIGNATURE = &HFEEF04BD

Public Const VS_FFI_STRUCVERSION = &H10000

Public Const VS_FFI_FILEFLAGSMASK = &H3F&

Public Const VS_FF_DEBUG = &H1

Public Const VS_FF_PRERELEASE = &H2

Public Const VS_FF_PATCHED = &H4

Public Const VS_FF_PRIVATEBUILD = &H8

Public Const VS_FF_INFOINFERRED = &H10

Public Const VS_FF_SPECIALBUILD = &H20

Public Const VOS_UNKNOWN = &H0

Public Const VOS_DOS = &H10000

Public Const VOS_OS216 = &H20000

Public Const VOS_OS232 = &H30000

Public Const VOS_NT = &H40000

Public Const VOS_BASE = &H0

Public Const VOS_WINDOWS16 = &H1

Public Const VOS_PM16 = &H2

Public Const VOS_PM32 = &H3

Public Const VOS_WINDOWS32 = &H4

Public Const VOS_DOS_WINDOWS16 = &H10001

Public Const VOS_DOS_WINDOWS32 = &H10004

Public Const VOS_OS216_PM16 = &H20002

Public Const VOS_OS232_PM32 = &H30003

Public Const VOS_NT_WINDOWS32 = &H40004

Public Const VFT_UNKNOWN = &H0

Public Const VFT_APP = &H1

Public Const VFT_DLL = &H2

Public Const VFT_DRV = &H3

Public Const VFT_FONT = &H4

Public Const VFT_VXD = &H5

Public Const VFT_STATIC_LIB = &H7

Public Const VFT2_UNKNOWN = &H0

Public Const VFT2_DRV_PRINTER = &H1

Public Const VFT2_DRV_KEYBOARD = &H2

Public Const VFT2_DRV_LANGUAGE = &H3

Public Const VFT2_DRV_DISPLAY = &H4

Public Const VFT2_DRV_MOUSE = &H5

Public Const VFT2_DRV_NETWORK = &H6

Public Const VFT2_DRV_SYSTEM = &H7

Public Const VFT2_DRV_INSTALLABLE = &H8

Public Const VFT2_DRV_SOUND = &H9

Public Const VFT2_DRV_COMM = &HA

我有个实例:打开记事本+获得记事本的句柄+向记事本中写入字符串+更改记事本的标题+获得所有运行的程序的标题。代码如下:

VERSION 500

Begin VBForm Form1

Caption = "Form1"

ClientHeight = 5325

ClientLeft = 60

ClientTop = 450

ClientWidth = 7560

LinkTopic = "Form1"

LockControls = -1 'True

ScaleHeight = 5325

ScaleWidth = 7560

StartUpPosition = 2 '屏幕中心

Begin VBListBox List1

Height = 4380

Left = 360

TabIndex = 4

Top = 480

Width = 4095

End

Begin VBCommandButton Command4

Caption = "获得所有程序标题"

Height = 495

Left = 4800

TabIndex = 3

Top = 2400

Width = 2535

End

Begin VBCommandButton Command3

Caption = "打开写入记事本+改标题"

Height = 495

Left = 4800

TabIndex = 2

Top = 1800

Width = 2535

End

Begin VBCommandButton Command2

Caption = "运行记事本"

Height = 495

Left = 4800

TabIndex = 1

Top = 1200

Width = 2535

End

Begin VBCommandButton Command1

Caption = "打开写入记事本"

Height = 495

Left = 4800

TabIndex = 0

Top = 600

Width = 2535

End

End

Attribute VB_Name = "Form1"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = False

'1

Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long

'==========================================================

'3

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

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 SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_PASTE = &H302

'===========================================================

'4

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

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) 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 Const GW_CHILD = 5

Private Const GW_HWNDNEXT = 2

'

Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

Private Sub Command1_Click()

'1 打开 写入 记事本

Dim AppID As Integer

AppID = Shell("C:\WINDOWS\notepadexe", 1)

AppActivate AppID

SendKeys "-2356e+012年后光荣感如果好了" '"SendKeys--字符有误,速度慢"

End Sub

Private Sub Command2_Click()

WinExec "notepadexe", 5

End Sub

Private Sub Command3_Click()

'3 打开 写入 记事本+改标题

Dim TemphWnd As Long

AppID = Shell("C:\WINDOWS\notepadexe", 1)

TemphWnd = FindWindow("Notepad", vbNullString)

'--------------------------------------------

SetWindowText TemphWnd, "Welcome to VB" '

'--------------------------------------------

TemphWnd = FindWindowEx(TemphWnd, 0, "Edit", vbNullString)

If TemphWnd Then

'DebugPrint TemphWnd

VBClipboardSetText "-2356e+012年后光荣感如果好了" '"SendMessage--字符正确,速度快"

SendMessage TemphWnd, WM_PASTE, 0, ByVal 0&

End If

End Sub

Private Sub Command4_Click()

'4 获得所有程序标题

Dim ret As Long

Dim hwnd As Long

Dim str As String 256

ret = GetDesktopWindow()

hwnd = GetWindow(ret, GW_CHILD)

Do While hwnd <> 0

GetWindowText hwnd, str, Len(str)

hwnd = GetWindow(hwnd, GW_HWNDNEXT)

If Left$(str, 1) <> vbNullChar Then

Form1List1AddItem str

End If

Loop

End Sub

'第二个实例的代码

sub form_load()

第一个实例的句柄=findwindow(第一个实例的类名,第一个实例的标题)

msgbox 第一个实例的句柄

end sub

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

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

'这是定义获得窗口句柄的API函数

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long,lParam As Any) As Long '这句是定义向获得窗口句柄发送按键消息的API函数

例子:你先建一个工程

form1caption="12345

画一个command1 名字为 "确定1"

事件

Private Sub Command1_Click()

msgbox MeHwnd '显示确定按钮的句柄

End Sub

生成12345exe

关闭VB6

打开VB6

再建一个工程 代码如下:

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

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 PostMessage& Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)

Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_LBUTTONDOWN = &H201

Private Const WM_LBUTTONUP = &H202

Private Const MK_LBUTTON = &H1

Dim hpwnd As Long, hcwnd As Long

Dim iResult As Long

Private Sub Command1_Click()

hpwnd = FindWindow(vbNullString, "12345")

hcwnd = FindWindowEx(hpwnd, 0, vbNullString, "确定")

SetForegroundWindow hcwnd

iResult = SendMessage(hcwnd, WM_LBUTTONDOWN, 0, 0&)

iResult = SendMessage(hcwnd, WM_LBUTTONUP, 0, 0&)

End Sub

然后先运行 事先生成好的12345exe

再运行后建的那个

你单击确定 就会使12345exe的确定按钮被单击 返回它的hwnd

我的方法是先找到12345exe的主窗口 然后根据主窗口的句柄获得其确定按钮的句柄 再使用sendmessage 发送模拟鼠标左键单击

VB控件的句柄 一般可用mehwnd 方法获得

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(ax, ay)

MeCaption = b

End Sub

添加一个timer控件 代码如上 取得句柄在窗体标题处显示

以上就是关于vb中 如何获得窗体中所有控件的句柄全部的内容,包括:vb中 如何获得窗体中所有控件的句柄、VB中如何得到一个文件的句柄、VB 如何获取一外部程序窗口内已知控件句柄的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10149144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存