当前位置:编程学习 > VB >>

如何通过API获取其他程序中的控件的句柄?

想用VB做一个程序,对另外一个程序进行批量输入。已经知道怎样获得那一个程序窗口的句柄,现在的问题是,那个程序窗口有若干个TextBox,知道其对应的name,那么怎样可以获得这些TextBox的句柄?

或者,是不是一定要知道句柄才能用sendmessage实现比量输入?


VB新手,请大家多指教


谢谢


--------------------编程问答-------------------- 知道其对应的name是没用的
编译为EXE后控件的Name都不会进去 --------------------编程问答--------------------
引用 1 楼 myjisgreat 的回复:
知道其对应的name是没用的
编译为EXE后控件的Name都不会进去


那应该如何解决这个问题?

--------------------编程问答-------------------- 知道句柄是必须的前提,你可以用FindWindowEx来查找这个句柄
然后如果是标准Windows控件的话,再借助API设置。
例如TextBox,可以发送WM_SETTEXT设置内容。 --------------------编程问答-------------------- 可不可以换一个思路?就是使其获得光标,可以很轻松的获得当前光标所在控件的句柄 --------------------编程问答-------------------- VB获取任何窗口下,鼠标光标位置所在的控件句柄2011-05-04 14:32:14


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)
Label1.Caption = b
End Sub

哈哈哈哈
--------------------编程问答--------------------
引用楼主 johnny_lbs 的回复:
想用VB做一个程序,对另外一个程序进行批量输入。已经知道怎样获得那一个程序窗口的句柄,现在的问题是,那个程序窗口有若干个TextBox,知道其对应的name,那么怎样可以获得这些TextBox的句柄?

或者,是不是一定要知道句柄才能用sendmessage实现比量输入?


VB新手,请大家多指教


谢谢

知道其对应的name,真不简单!!!!!!!!!!!!!!!!!!!!!!!!!!
一般来说,控制第三方软件的文本框,需要做以下事情:
第1步:取得文本框句柄;
第2步:取得文本框锁定状态(如要改变文本框内容,这一步不可少);
第3步:发送消息改变或取得文本框的标题(值) --------------------编程问答-------------------- 5楼的代码是正确的.
补充:VB ,  API
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,