我想要检测Solidworks的安装,以了解版本和Service Pack (如果应用)。我发现了一个注册键“安装源”HKML / SOLIDWORK/Setup“但是有些计算机的这个键是空的,有没有其他方法可以获得这些信息?
谢谢
发布于 2016-09-27 23:25:16
您还没有指定语言,所以我不能帮助您了解确切的语法,但是使用SOLIDWORKS API,您可以获得ISldWorks对象上的RevisionNumber方法。根据文档:
对于SOLIDWORKS2000初始公开发布之前的所有SOLIDWORKS可执行文件,此方法返回1.0.0。对于SOLIDWORKS 2000的初始公开版本,此方法返回8.0.0。对于SOLIDWORKS 2000 SP1,此方法返回8.1.0,并且SOLIDWORKS 2000的每个后续service pack都会递增返回值的最左侧小数部分。每次后续的主要公开发布都会递增小数点左侧的返回值部分,并且每个的初始公开发布都具有十进制值0.0。例如,SOLIDWORKS2005的初始公开版本返回13.0.0,而SOLIDWORKS2005SP0.1返回13.0.1,SOLIDWORKS2005 SP1返回13.1.0。
Alpha、beta和预发布版本返回负的次要修订版号:
a1:-1.0
b1:-2.0
b2:-3.0
b3:-4.0
PR1:-5.0 (这个值可能更低或更高,这取决于测试版的数量)。
例如,SOLIDWORKS 2015 beta2的返回值为23.-3.0.b1:
来源:SOLIDWORKS ISldWorks.GetRevision() documentation
发布于 2017-03-11 01:57:43
这就是你要找的吗?
using SolidWorks.Interop.sldworks;
using System;
namespace Sample
{
class Program
{
const string appString = "SldWorks.Application";
static void Main(string[] args)
{
SldWorks swApp = null;
try
{
swApp = (SldWorks)System.Runtime.InteropServices.Marshal.GetActiveObject(appString);
if (swApp == null) throw new NullReferenceException(nameof(swApp));
}
catch (Exception)
{
try
{
swApp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID(appString));
if (swApp == null) throw new NullReferenceException(nameof(swApp));
}
catch (Exception)
{
Console.WriteLine("Could not get SolidWorks Version");
}
}
if (swApp != null) Console.WriteLine("SolidWorks Version: {0}", swApp.RevisionNumber());
Console.ReadLine();
}
}
}
https://stackoverflow.com/questions/39707179
复制相似问题