Application对象
Application对象的子对象:
6. SystemService: 利用application获得系统服务
下图展示了我们可以利用Application.SystemService获取哪些系统服务
**Application.SystemService.Environ:**获取系统环境变量的值,返回文本格式。
如获取系统变量“Path”的值:
Dim strSysPath As String
strSysPath = CATIA.SystemService.Environ("Path")
MsgBox strSysPath
结果: 这个Path变量的值比较多,所以显示比较复杂
理论上,我们可以用这个方法获得所有的系统变量的值:
**Application.SystemService.Evaluate:**利用Evaluate方法执行一个脚本语句,并返回执行结果
Func Evaluate( CATBSTR iScriptText, CATScriptLanguage iLanguage,
CATBSTR iFunctionName, CATSafeArrayVariant iParameters) As CATVariant
例如:
Dim params() '定义语句参数数组
Dim codeToEvaluate '定义执行的语句
CodeToEvaluate = "Sub CATMain()" & vbNewLine & "MsgBox " & chr(34) & "Hello World" & chr(34) &vbNewLine _
& "End Sub"
'CATVBScriptLanguage 是脚本语言名称CATVBScript
'CATIA.SystemService.Evaluate (脚本语句,脚本语言名称,函数名称,执行参数数组)
CATIA.SystemService.Evaluate CodeToEvaluate, CATVBScriptLanguage, "CATMain", params
CodeToEvaluate的脚本内容
理论上,除了CATVBScriptLanguage还有以下这几种语言写的脚本函数都是可以执行的
Application.SystemService.ExecuteBackgroundProcessus:
执行一个异步程序,在后台执行不必等它结束
Func ExecuteBackgroundProcessus( CATBSTR iExecutablePath) As long
输入参数中是执行程序的地址
例如: 执行C:\Program Files\myApp\myApp.exe这个程序
CATIA.SystemService.ExecuteBackgroundProcess “‘C:\Program Files\myApp\myApp.exe’ myArg”
理论上也可以简化为下面语句,如果路径已经添加到了系统变量"Path"中.(未证实)
CATIA.SystemService.ExecuteBackgroundProcess “‘myApp\myApp.exe’ myArg”
虽然ExecuteBackgroundProcess函数定义是有返回值的,但实际不返回。
Application.SystemService.ExecuteProcessus:
执行一个异步程序,但是需要等待它结束才能继续下一步
Func ExecuteProcessus( CATBSTR iExecutablePath) As long
例如:
Dim ReturnCode as long
ReturnCode = CATIA.SystemService.ExecuteProcessus("")
ExecuteProcessus在执行完毕后返回ReturnCode,可以判断语句是否执行结束。
Application.SystemService.ExecuteScript:
执行一个脚本文件
同Evaluate不同的是,ExecuteScript执行的是写好的一个脚本文档,而不是一个带脚本的语句。
Func ExecuteScript( CATBSTR iLibraryName, CatScriptLibraryType iType,
CATBSTR iProgramName, CATBSTR iFunctionName,
CATSafeArrayVariant iParameters) As CATVariant
iLibraryName '包含脚本的库
iType '脚本库类型,文档/目录/VBA项目
iProgramName '程序名称
iFunctionName '函数名称
iParameters '程序参数
例如: 执行Part1.CATPart中包含的宏脚本Macro1.catvbs,运行主程序CATMain
Dim params()
CATIA.SystemService.ExecuteScript "Part1.CATPart", catScriptLibraryTypeDocument, "Macro1.catvbs", "CATMain", params
用这种方法,可以运行事先写好的各种CATIA脚本文件
Application.SystemService.Print:
输出一个标准输出流显示文本信息。
下列语句执行不成功,因为Print好像不支持Automation对象。
Dim iString
iString = "Hello Word"
CATIA.SystemService.Print (iString)