以下を使用して Catia にラッチを掛けました。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim boolCatAlive As Boolean
boolCatAlive = False
Try
Dim myCatia As INFITF.Application
myCatia = Interaction.GetObject(vbNullString, "CATIA.Application")
boolCatAlive = True
Catch ex As Exception
boolCatAlive = False
End Try
Select Case boolCatAlive
Case True
'continue loading app, do my stuff
Case Else
'end this now
MsgBox("No running CATIA instance detected, please start a new CATIA instance and re-run this program.", MsgBoxStyle.Critical, "Error")
End
End Select
End Sub
これは、アプリをロードするかどうかを決定する、フォームのロード時の単純なブール値スイッチです。
これは問題なく動作しますが、アプリの起動時に一度だけチェックを行っています。ユーザーがアプリの実行中に CATIA を終了した場合、アプリが通知を受けて CATIA COM リンクが無効になったことを認識できるように、CATIA ステータスを継続的に検出する方法はありますか?
たとえば、それを使用して選択の変更を検出することもできますか?