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
3 回答
您可以从hta应用程序启动CATIA,如此处所述 . 有了这个,您可以处理许可证的特定CATSettings(也适用于不同的CATIA环境),但您必须说服您的用户使用hta . 您还可以在Internet上找到一些已经完成的CATIA Launcher .
通过这种方式,您可以避免让用户获得单独的许可证,该许可证也可以包含在另一个许可证中(例如,单独的MD2和HD2 - 其中包括MD2附近的其他人) .
使用许可证的人员名单及其拥有的许可证可以从LUM软件中获取,但您需要阅读该软件的文档(这不能解决用户多次获取许可证的问题) .
我不推荐hta推出Catia . 您可以使用表单或wpf在C#中编写一个非常简单的启动器 . 在许可证方面,你也是自己的 . 有一些产品需要花钱 . 如果您正在使用LUM,则可以编写一个查询服务器并发出许可证信息的脚本,然后编写一个显示该数据的网页 .
我写了两篇文章,可以给你更具体的策略 .
如果你从内部网运行它(你说你是),你可以使用IE的VBscript . 我知道这不是最好的浏览器,但是因为在我公司这是官方浏览器,我为同事提供了一些工具来做这样的行动 . 我最好的解决方案(我发现的最差的)是运行批处理文件,它调用Catia
从VBscript运行批处理文件(仍可在Intranet上运行):
shell.Run "C:\foo\startCatia.bat"
并且批处理文件应该包含
CNEXT
,它应该打开Catia但是,您可能会遇到环境变量和许可证的问题 . 我无法避免这种情况,直到我找到了在批处理文件中编写它们的方法(当然这必须从Catia完成,所以我在其他宏的后台创建,并且在用户拥有之前它无法工作启动我的一个工具来创建这个批次) . 以下是在Catia中运行以编写此批处理文件的代码: