0

CPU とメモリを集中的に使用する計算を実行するために、Visual Basic から外部アプリケーションを起動しています。コードは多かれ少なかれ次のようになります。

    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()

上記のコードをプロセスにカプセル化することは可能でしょうか? 私は最終的に次のようなものを探しています:

    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)

    ...

アプリケーションをプロセスにカプセル化する理由は、(i) ジョブとして異なる dataFiles を使用して実行可能ファイルの複数のインスタンスを実行したい、(ii) カヌー ソフトウェアがハングしたり、奇妙なことをした場合に備えて、したいことです。 VB アプリケーションからプロセスを強制終了できます。

逆を達成することは可能ですか?つまり、プロセス ID を取得するために gApp アプリケーション オブジェクト (実行中) を指定しますか?

コメントはありますか?

4

1 に答える 1

0

答えは不可能だと思います。Windows COM インターフェイスを介してリソースを要求していますが、それをプロセスにカプセル化することは不可能かもしれません (プロセスがまったく存在しない可能性があります)。

于 2013-12-04T08:46:24.027 に答える