Обнаружение версии установки Solidworks и пакета обновления

Я хотел бы обнаружить установку Solidworks, чтобы узнать выпуск и пакет обновления (если он применяется). Я нашел один ключ реестра "установить источник" HKML / SOLIDWORK/Setup, но на некоторых компьютерах этот ключ пуст. Есть ли другой способ получить эту информацию?

Спасибо


person h.sabatou    schedule 26.09.2016    source источник


Ответы (2)


Вы не указали язык, поэтому я не могу помочь вам с точным синтаксисом, но с помощью SOLIDWORKS API вы можете получить метод RevisionNumber для объекта ISldWorks. Согласно документации:

Для всех исполняемых файлов 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.

Альфа-, бета- и предварительные выпуски возвращают отрицательные второстепенные номера версий:

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

person AndrewK    schedule 27.09.2016
comment
Спасибо за ваш ответ. Я испытаю это как можно скорее - person h.sabatou; 28.09.2016

Это то, что вы ищете?

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();
        }
    }
}
person Jeremy    schedule 10.03.2017