【发布时间】:2015-02-23 14:26:53
【问题描述】:
我使用以下方法锁定了 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 - 应用程序会收到通知并意识到 CATIA COM 链接不再有效?
例如,我也可以使用它来检测选择更改?
【问题讨论】:
-
如何启动 catia?通过快捷方式还是通过另一个过程?如果是通过过程,您可以直接获得有关 catia 实例活动的信息。通过 getobject 您无法知道哪个实例处于活动状态,也无法知道有多少。如果您只想阅读进程是否存在,您也可以通过 Windows 进程来完成