【问题标题】:Detect Solidworks installation Release and service pack检测 Solidworks 安装版本和服务包
【发布时间】:2017-03-11 01:57:43
【问题描述】:

我想检测 Solidworks 的安装以了解版本和 Service Pack(如果应用)。 我找到了一个注册表键“安装源”HKML / SOLIDWORK/Setup”,但有些计算机的这个键是空的 还有其他方法可以获取这些信息吗?

谢谢

【问题讨论】:

    标签: solidworks


    【解决方案1】:

    您尚未指定语言,因此我无法为您提供确切的语法,但使用 SOLIDWORKS API,您可以获取 ISldWorks 对象的 RevisionNumber 方法。根据文档:

    对于在 SOLIDWORKS 首次公开发布之前的所有 SOLIDWORKS 可执行文件 SOLIDWORKS 2000,此方法返回 1.0.0。对于初始公众 SOLIDWORKS 2000 版本,此方法返回 8.0.0。对于 SOLIDWORKS 2000 SP1,此方法返回 8.1.0,以及每个后续服务包 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(此值可能会更高或更低,具体取决于 beta 版本的数量。)

    例如,SOLIDWORKS 2015 beta2 的返回值为 23.-3.0.b1:

    来源:SOLIDWORKS ISldWorks.GetRevision() documentation

    【讨论】:

    • 感谢您的回答。我会尽快测试的
    【解决方案2】:

    这就是你要找的吗?

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

    【讨论】:

      猜你喜欢
      • 2010-10-25
      • 2010-09-16
      • 2010-10-24
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 2021-10-23
      • 2011-06-21
      相关资源
      最近更新 更多