0

Я запускаю внешнее приложение из Visual Basic для выполнения вычислений с использованием ЦП и памяти. Код более или менее выглядит следующим образом:VB: Инкапсуляция объекта приложения с помощью процесса

gApp = New CANoe.ApplicationgApp = New CANoe.Application 
    While gApp Is Nothing 'wait until CANoe started 
     Threading.Thread.Sleep(100) 
    End While 
    gApp.Open(canoeConfigFile, False, False) 
    gApp.Configuration.OfflineSetup.Source = dataFile 
    gMeasurement.Start() 
    While (gMeasurement.Running) 
      Threading.Thread.Sleep(1000) 
    End While 
    gApp.Quit() 

Можно ли инкапсулировать код выше в процессе? Я ultematelly искал что-то вроде:

Dim canoeProcess As New Process 
    canoeProcess.StartInfo.FileName = "C:\Program Files (x86)\Vector CANoe 8.1\Exec32\CANoe32.exe" 
    canoeProcess.Start() 
    gApp = canoeProcess.Application 
    ... 

    ' (the code continues as the above) 

    ... 

Причины, почему я хочу encapusalte приложения в процесс является то, что (я) Я хочу, чтобы запустить Muliple экземпляров исполняемого файла с различным DataFiles в качестве рабочих мест и (б) в случае зависания программного обеспечения каноэ или чего-то странного я хотел бы убить процесс из приложения VB.

Можно ли добиться обратного? I.e., предоставляя объект приложения gApp (который работает) для получения идентификатора процесса?

Любые комментарии?

ответ

0

Я считаю, что ответ заключается в том, что это невозможно. Я запрашиваю ресурсы через интерфейс Windows COM и инкапсулирование его в процесс может быть даже невозможным (возможно, процесс вообще не существует)