检测Solidworks安装发布和Service Pack

时间:2016-09-26 15:50:07

标签: solidworks

我想检测Solidworks的安装,以了解发布和Service Pack(如果已应用)。 我找到了一个注册密钥"安装源" HKML / SOLIDWORK / Setup"但是有些电脑把这个钥匙弄空 还有另一种获取这些信息的方法吗?

由于

2 个答案:

答案 0 :(得分:2)

您尚未指定语言,因此我无法使用确切的语法帮助您,但使用SOLIDWORKS API,您可以在ISldWorks对象上获取RevisionNumber方法。根据文件:

  

对于首次公开发布之前的所有SOLIDWORKS可执行文件   SOLIDWORKS 2000,此方法返回1.0.0。对于初始公众   发布SOLIDWORKS 2000时,此方法返回8.0.0。对于SOLIDWORKS   2000 SP1,此方法返回8.1.0,并返回每个连续的Service Pack   SOLIDWORKS 2000增加了最左边的小数部分   回报价值。每个连续的主要公开发布都会增加   小数点左边的返回值的一部分和   每个的初始公开发布的小数值为0.0。对于   例如,SOLIDWORKS 2005的初始公开发布版返回13.0.0   而SOLIDWORKS 2005 SP0.1返回13.0.1和SOLIDWORKS 2005 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

答案 1 :(得分:0)

这是你要找的吗?

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();
        }
    }
}