Как открыть программу и передать ей данные

Если передаваемых параметров немного, то их можно передать через командную строку.
В первой программе:

Private Sub Command1_Click()
Shell "prog2.exe parametr1 parametr2", vbNormalFocus
End Sub
Во второй программе:
Private Sub Form_Load()
MsgBox "В программу были переданы следующие параметры: " + Command
End Sub
Если много данных, то их лучше передать через временный файл.
В первой программе:
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Private Sub Command1_Click()
Dim l As Long, TempPath As String
' Получаем директорию временных файлов
TempPath = Space$(144)
l = GetTempPath(144, TempPath)
TempPath = Left$(TempPath, l)
' Записываем во временный файл данные
Open TempPath + "tempfile.dat" For Output As 1
Write #1, "parametr1"
Write #1, "parametr2"
'....
Close #1
' Открываем программу и передаем ей название временного файла
Shell "prog2.exe " + TempPath + "tempfile.dat", vbNormalFocus
End Sub
Во второй программе:
Private Sub Form_Load()
Dim p
' В данном случае Command содержит
' название временного файла
Open Command For Input As 1
Do
Input #1, p
MsgBox p
Loop While Not EOF(1)
Close #1
' Удаляем временный файл
Kill Command
End Sub
Hosted by uCoz