Проверить, установлен ли Solidworks?

У меня есть приложение С#, которое работает как в 32-разрядной, так и в 64-разрядной ОС. Как я могу программно проверить, установлен ли SolidWorks на компьютере или нет, в моем приложении. Если мы можем проверить это, прочитав раздел реестра, укажите мне путь как для 32-битной, так и для 64-битной версии. Подскажите, есть ли другие способы проверить это.


person user369182    schedule 24.05.2010    source источник


Ответы (3)


Вы можете использовать WMI следующим образом

private static bool IsInstalled(string ProductName)
{

    bool rv = false;
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
    ManagementObjectCollection Products = searcher.Get();
    if (Products.Count != 0)
    {
        foreach (ManagementObject product in Products)
        {
            if (product.Properties["Name"].Value.ToString() == ProductName)
            {
                rv = true;
            }
        }
    }
    return rv;           
}
person Charles Gargent    schedule 24.05.2010
comment
Я бы использовал операторы «using» вокруг ManagementObjectSearcher и ManagementObjectCollection, чтобы убедиться, что они правильно удалены. - person SwDevMan81; 24.05.2010
comment
Вы можете разорвать цикл foreach при создании продукта, заменив rv = true на return true (объявление rv становится ненужным) - person alex; 27.02.2016

Нужно ли приложению запускать SolidWorks, если оно установлено? Если это так, я запускаю все свои автономные (не надстройки) инструменты SolidWorks с

Public swApp As SldWorks.SldWorks

Function GetSolidWorks(ForceLaunch As Boolean) As Boolean
    If Not swApp Is Nothing Then
        SetSolidWorksVisibility()
        Return True
    Else
        Try
            swApp = GetObject(, "SldWorks.Application")
            If swApp Is Nothing Then Return False

            SetSolidWorksVisibility()
            Return True
        Catch ex As Exception
            If Not ForceLaunch Then Return False

            swApp = CreateObject("SldWorks.Application")
            If swApp Is Nothing Then Return False

            SetSolidWorksVisibility()

            'simple timer to wait for solidworks to repond
            System.Threading.Thread.Sleep(5000)

            Return True
        End Try
    End If
End Function

Private Sub SetSolidWorksVisibility()
    If Not swApp.Visible Then swApp.Visible = True
    If Not swApp.FrameState = SwConst.swWindowState_e.swWindowMaximized Then swApp.FrameState = SwConst.swWindowState_e.swWindowMaximized
End Sub
person Jeremy    schedule 31.07.2015



Это для новичков....
Я думаю, что есть много способов проверить, установлен ли Solidworks или нет, но, по моему мнению, когда Solidworks установлен, он создает несколько папок в реестре.

Просто выполните следующие действия, чтобы проверить...

Откройте выполнить
Введите regedit и нажмите Ввод
Разрешите «Управление доступом пользователей», нажав Да< /b>
Перейдите в раздел HKEY_LOCAL_MACHINE -> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Теперь проверьте, доступна ли запись в папке Solidwork или нет
Если папка найдена, SolidWorks установлен, иначе нет..!

надеюсь, это поможет!

person Yogesh Gat    schedule 09.03.2016