如果您从 Intranet 运行此程序(并且您说您是),您可以使用 IE 中的 VBscript。我知道它不是最好的浏览器,但因为在我的公司它是官方浏览器,所以我为我的同事提供了一些工具来执行类似的操作。我最好的解决方案(我发现的最差的)是运行一个名为 Catia 的批处理文件
要从 VBscript 运行批处理文件(仍然适用于 Intranet):
shell.Run "C:\foo\startCatia.bat"
并且批处理文件应该包含CNEXT
,它应该打开 Catia
但是你可能会遇到环境变量和许可证的问题。我无法避免这种情况,直到我找到了一种将它们写入批处理文件的方法(当然这必须从 Catia 完成,所以我在其他宏的后台创建,并且在用户之前它无法工作)启动我的一个工具来创建这个批次)。这是在 Catia 中运行以编写此批处理文件的代码:
Sub catmain()
Set oFileSys = CATIA.FileSystem
temp = oFileSys.TemporaryDirectory.Path
envpath = temp + "\env.txt"
GetPath = temp + "\getenv.bat"
runpath = CATIA.SystemService.Environ("USERPROFILE") + "\Desktop\StartCatia.bat"
On Error Resume Next
oFileSys.DeleteFile envpath
oFileSys.DeleteFile GetPath
oFileSys.DeleteFile runpath
On Error GoTo 0
Dim defaults(1111, 2) As String
Set defaultslist = CreateObject("WScript.Shell").Environment
Set GetFile = oFileSys.CreateFile(GetPath, False)
Set getStream = GetFile.OpenAsTextStream("ForWriting")
getStream.Write "set > " & envpath
getStream.Write Chr(10)
getStream.Close
CATIA.SystemService.ExecuteProcessus (GetPath)
Set RunFile = oFileSys.CreateFile(runpath, True)
Set RunStream = RunFile.OpenAsTextStream("ForWriting")
Set envfic = oFileSys.GetFile(envpath)
Set envStream = envfic.OpenAsTextStream("ForReading")
line = envStream.ReadLine
While line <> ""
l1 = InStr(line, "=")
envvar = Left(line, l1 - 1)
dest = Right(line, Len(line) - l1)
defcontent = defaultslist.item(envvar)
If defcontent <> dest Then
'Set each environment variables
RunStream.Write "set " & line & Chr(10)
End If
line = envStream.ReadLine
Wend
envStream.Close
'Add a command to launch Catia
RunStream.Write "CNEXT" & Chr(10)
RunStream.Close
On Error Resume Next
oFileSys.DeleteFile envpath
oFileSys.DeleteFile GetPath
On Error GoTo 0
MsgBox "StartCatia.bat created on your desktop", vbInformation, "hjn fast launcher"
End Sub