
如何在VB程序“B”中 控制另一个VB程序“A”中的 Command 控件?
本人用VB编制了几个VB小游戏,分别是B1、B2、B3(已编译成可执行程序)。同时用VB编写了一个小程序A,在A程序中用CallShellExecute(Me.hWnd,...
本人用VB编制了几个VB小游戏,分别是 B1、B2、B3(已编译成可执行程序)。同时用VB编写了一个小程序 A ,在A 程序中用 Call ShellExecute(Me.hWnd, "Open", 径路+B1, vbNullString, App.Path, SW_SHOWNORMAL) 来运行小程序B1、B2、B3。
程序A中有N个 Command 控件,A1、A2等 。
在程序B中有N个 Command 控件,B1、B2等 。
现在问题是,想在程序B中,通过点击B1、B2等按钮达到点击A程序中A1、A2 按钮控件的效果。
也就是在程序B中,控制程序A的进程,如何才能实现?
表达有误:
程序A中有N个 Command 控件,按钮A1、按钮A2等 。
在程序B中有N个 Command 控件,按钮B1、按钮B2等 。
现在问题是,想在程序B中,通过点击按钮B1、按钮B2等按钮达到点击A程序中按钮A1、按钮A2 按钮控件的效果。
也就是在程序B中,控制程序A的进程,如何才能实现? 展开
程序A中有N个 Command 控件,A1、A2等 。
在程序B中有N个 Command 控件,B1、B2等 。
现在问题是,想在程序B中,通过点击B1、B2等按钮达到点击A程序中A1、A2 按钮控件的效果。
也就是在程序B中,控制程序A的进程,如何才能实现?
表达有误:
程序A中有N个 Command 控件,按钮A1、按钮A2等 。
在程序B中有N个 Command 控件,按钮B1、按钮B2等 。
现在问题是,想在程序B中,通过点击按钮B1、按钮B2等按钮达到点击A程序中按钮A1、按钮A2 按钮控件的效果。
也就是在程序B中,控制程序A的进程,如何才能实现? 展开
3个回答
展开全部
每个程序需要添加一个winsock控件 ,(Ctrl+T调出部件对话框,里面的是Microsoft Winsock Control 6.0)
A程序
Private Sub Form_Load()
Winsock1.Protocol = sckUDPProtocol
Winsock1.Bind 8002 '绑定到本地的端口。
End Sub
Private Sub Command1_Click() ' 这是测试代码,根据需要你需要修改
MsgBox "1"
End Sub
Private Sub Command2_Click() '这是测试代码,根据需要你需要修改
MsgBox "2"
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Winsock1.GetData strData
Select Case strData ' 根据发过来的信息判断打算单击那个按钮
Case "c1"
Command1_Click
Case "c2"
Command2_Click
End Select
End Sub
B程序
Private Sub Command1_Click()
Winsock1.SendData "c1" '和A程序对应
End Sub
Private Sub Command2_Click()
Winsock1.SendData "c2" '和A程序对应
End Sub
Private Sub Form_Load()
Winsock1.Protocol = sckUDPProtocol
With Winsock1
'因为都需要和A通信下面的在B里面全部一样
.RemoteHost = "127.0.0.1" '这个意思是本机
.RemotePort = 8002 '连接A的端口号。要对应
End With
End Sub
A程序
Private Sub Form_Load()
Winsock1.Protocol = sckUDPProtocol
Winsock1.Bind 8002 '绑定到本地的端口。
End Sub
Private Sub Command1_Click() ' 这是测试代码,根据需要你需要修改
MsgBox "1"
End Sub
Private Sub Command2_Click() '这是测试代码,根据需要你需要修改
MsgBox "2"
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Winsock1.GetData strData
Select Case strData ' 根据发过来的信息判断打算单击那个按钮
Case "c1"
Command1_Click
Case "c2"
Command2_Click
End Select
End Sub
B程序
Private Sub Command1_Click()
Winsock1.SendData "c1" '和A程序对应
End Sub
Private Sub Command2_Click()
Winsock1.SendData "c2" '和A程序对应
End Sub
Private Sub Form_Load()
Winsock1.Protocol = sckUDPProtocol
With Winsock1
'因为都需要和A通信下面的在B里面全部一样
.RemoteHost = "127.0.0.1" '这个意思是本机
.RemotePort = 8002 '连接A的端口号。要对应
End With
End Sub
展开全部
仅仅提供一个思路,可以使用windows消息,B发送单击按钮的消息给A,A就以为确实有人点击了按钮,完成点击按钮事件的处理。
仅仅一个思路,具体还是要自己在研究。
仅仅一个思路,具体还是要自己在研究。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用句柄来控制,或者像jlf629那样改成局域网游戏,如果想用句柄来写的话就M我吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询