VB如何操作外来应用程序的控件?

例如,我用shell语句打开一个外来应用程序,这个程序上有一个按钮,我想让VB程序自动点击这个按钮,我该怎末办?如何获得这个窗口的句柄什吗叫录入?... 例如,我用shell语句打开一个外来应用程序,这个程序上有一个按钮,我想让VB程序自动点击这个按钮,我该怎末办?
如何获得这个窗口的句柄
什吗叫录入?
展开
 我来答
远风的梦想家
2010-07-28 · TA获得超过2550个赞
知道大有可为答主
回答量:1389
采纳率:0%
帮助的人:0
展开全部
百度HI我吧 告诉我你具体的东西,查找窗口句柄不是一句两句能说明白的,代码比较多

楼上说的注入就更麻烦了,要挂进程钩子,比找句柄复杂多了……

'下面这个代码 是查找windows自带的记事本并修改其内容的代码,先打开记事本,再运行这个代码,要添加一个按钮,点一下之后记事本里的文本就改变了
'对于不同的窗口,不同的消息动作,编码也不同,所以,你得知道你要控制的窗口的基本信息:标题、类名,按钮类名等才可以进一步编程
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam 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 Const WM_SETTEXT = &HC

Private Sub Command1_Click()
Dim hwnd As Long
Dim hedit As Long
hwnd = FindWindow("Notepad", vbNullString)
If hwnd <> 0 Then
hedit = FindWindowEx(hwnd, 0, "Edit", vbNullString)
If hedit <> 0 Then
SendMessage hedit, WM_SETTEXT, 0, "abcdefg" & vbNullChar
End If
End If
End Sub
thisiscomputer
2010-07-28 · TA获得超过141个赞
知道答主
回答量:142
采纳率:0%
帮助的人:151万
展开全部
使用FindWindow来获取外来程序窗体的句柄,再用FindWindowEx来获取按钮的句柄,然后对它发送按下消息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beyond9966
2010-07-28 · TA获得超过1140个赞
知道小有建树答主
回答量:600
采纳率:100%
帮助的人:489万
展开全部
有种技术叫注入。可以在程序的某个位置加入自己的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式