Если передаваемых параметров немного, то их можно передать через командную строку.
В первой программе:
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