VB如何在2个程序间传递数据

问下各位大虾
我在运行一个程序时要调用另一个程序要用SHELL函数
请问要调用的程序如何接受传递给它的数据呢?
要调用的程序要返回一个值时调用它的程序又如何接受?
请各位指点!~
本人自学 比较菜 请多多帮助

'用DDE.
添加一个Text Name = txtInfo 和 一个Picture Name = picDDE
将工程名称改为 P1
Const COMMANDLINE = "CommandLine=" ' 还是为了省事,定义一个常量

Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
Static lngCount As Long
Dim Info As String

Info = txtInfo.Text ' 保留原有信息

Select Case CmdStr ' CmdStr 是DDE程序传送过来的参数
Case "Max"
Me.WindowState = 2
Info = Info + vbNewLine + "窗体已被最大化"
Case "ShowTime"
Info = Info + vbNewLine + "最后一次运行这个程序的时间是:" + Str(Now)
Case "Count"
lngCount = lngCount + 1
Info = Info + vbNewLine + "你已经第" + Str(lngCount) + "次重复调用这个程序。" _
+ vbNewLine + "但怕您不多给工资,所以只运行了一个 ^_^"
End Select

If Left(CmdStr, Len(COMMANDLINE)) = COMMANDLINE Then
Info = Info + vbNewLine + "新程序曾以命令行形式运行" + vbNewLine + "命令行为:" _
+ vbNewLine + Right(CmdStr, Len(CmdStr) - Len(COMMANDLINE))
End If

txtInfo.Text = Info ' 把信息显示出来

Cancel = False
End Sub

Private Sub LinkAndSendMessage(ByVal Msg As String)
Dim t As Long
picDDE.LinkMode = 0 '--
picDDE.LinkTopic = "P1|FormDDE" ' |______连接DDE程序并发送数据/参数
picDDE.LinkMode = 2 ' | “|”为管道符,是“退格键”旁边的竖线,
picDDE.LinkExecute Msg '-- 不是字母或数字!

t = picDDE.LinkTimeout '--
picDDE.LinkTimeout = 1 ' |______终止DDE通道。当然,也可以用别的方法
picDDE.LinkMode = 0 ' | 这里用的是超时强制终止的方法
picDDE.LinkTimeout = t '--
End Sub

Private Sub Form_Load()
If App.PrevInstance Then ' 程序是否已经运行

Me.LinkTopic = "" ' 这两行用于清除新运行的程序的DDE服务器属性,
Me.LinkMode = 0 ' 否则在连接DDE程序时会出乱子的

LinkAndSendMessage "Max" '--
LinkAndSendMessage "Count" ' |-----连接DDE接受程序并传送数据/参数
LinkAndSendMessage "ShowTime" '--

If Command <> "" Then ' 如果有命令行参数,就传递过去
LinkAndSendMessage COMMANDLINE + Command
End If
End ' 结束新程序的运行
End If
End Sub

不明白的话加我QQ
57741236
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-02-14
有返回和结果处理参数阿。你不知道吗?