
正文
vb.net获取句柄函数 vb 句柄
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB 获取其他程序控件的句柄
一般是用钩子程序的。
比较复杂,只能说个大体思路,要花最少30分钟。分太少了。
API函数的声明就不说了。
先用findwindow找到窗体,用GetWindow和GetClassName获得其窗体内各对象的句柄,从而可以获得文本框的句柄。
最后用SendMessage函数想文本框发送文本。
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表示其长度。该方法写入时,文本框中原有内容全部覆盖。
相关问答
Q1: 用VB或VB.NET用API函数FindWindow获取一个当前XX窗口句柄
这是一个vb用findwindow等api找到其它窗口,并且更改其它窗口的文本的源码:
里面也有源码下载的
如果你到它的文章列表中,会找到许多其它相关的文章,都是api操作其它窗体的例子
Q2: VB获取窗口句柄的详细教程
1、首先在电脑中打开VB软件,然后点击窗口。
2、然后找到窗体布局窗口,就可以在这里,直接拖曳鼠标,设置窗体的位置。
3、如果没有默认打开,回到操作页面中,找到并点击如下图的按钮。
4、也可以找到stateUpPosition这个属性。
5、然后在打开点页面中,就可以根据自己的需要,设置预设的类型了。
Q3: VB.net 获取控件句柄
Dim hwnd0 As Integer
Dim hwnd11 As Integer
第二个是vb.net获取句柄函数你要生成EXE后 运行EXE
第三就是没好像没有文本框控件
Q4: vb.net如何通过窗口句柄显示窗口
首先声明一下API
在vb.net获取句柄函数你窗口最顶vb.net获取句柄函数的位置上写上
Private Declare Function 取窗口句柄 Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'由于VB支持中文vb.net获取句柄函数的 vb.net获取句柄函数我就定义成 取窗口句柄 这个了
'在窗体中添加一个按钮里面放进下面代码就OK了
Private Sub Command1_Click()
Dim 窗口句柄 As Long '声明窗口句柄变量存储
窗口句柄 = 取窗口句柄(vbNullString, "新建 文本文档.txt - 记事本") '取窗口标题的句柄 把得到窗口标题句柄赋予给刚才 窗口句柄 这变量里
If 窗口句柄 = 0 Then '判断窗口句柄是否等于0 如果等于0表示无法找到窗口句柄
MsgBox "无法找到需要的窗口句柄"
Else
MsgBox "已找到窗口句柄 句柄数为vb.net获取句柄函数:" 窗口句柄
End If
End Sub
Q5: 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.net获取句柄函数和vb 句柄的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








