frownies
2015-04-04 05:50
采纳率: 50%
浏览 2.5k
已采纳

vb2008 如何自动点击外部程序按钮

要求:
第一步:由程序1启动程序2,
第二步:关键,从程序1自动点击程序2中按钮(无任程序2是最大化、最小化还是隐藏式),请问如何写代码,谢谢

程序1:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Shell("程序2.exe", AppWinStyle.NormalFocus)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
MsgBox("请教高手如何实现?")
End Sub
End Class

程序2:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("ok")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
End Class

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • blownewbee 2015-04-04 06:07
    已采纳
    点赞 打赏 评论
  • blownewbee 2015-04-04 06:05

    SendMessage Syscommand

    点赞 打赏 评论
  • blownewbee 2015-04-04 06:06
    点赞 打赏 评论
  • bdmh 2015-04-04 06:06

    首先你要找到那个按钮的句柄,可以用枚举窗口去找,api函数里有

    点赞 打赏 评论
  • 纵横车 2015-04-04 06:10

    先FindWindow()找到被打开程序的主窗口,再找到枚举他的子窗口找到按钮,再SendMessage()。

    点赞 打赏 评论
  • oyljerry 2015-04-04 06:12

    用spy++查看一下程序对应的按钮等信息,然后通过SendMessage发送对应按钮消息。

    点赞 打赏 评论
  • frownies 2015-04-04 12:52

    谢谢高手指点,本人愚昧,在vb2008环境下试了,就这个都不通过:
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal ByValwMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
    报Any无效,因此我搭建了vb2008下程序框架,望高手完善程序1按钮代码,实现点击程序2按钮的功能
    我的邮箱:frownies@139.com,如有成功,我定将贴出共享,谢谢

    http://115.com/lb/5lbarqrg2of4#
    程序框架,能否帮忙完善程序1按钮,实现点击程序2的功能.zip
    115礼包码:5lbarqrg2of4

    点赞 打赏 评论

相关推荐 更多相似问题