2010-05-24 4 views
5

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

ответ

4

Вы можете использовать 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;   
} 
+1

Я бы бросил «используя» утверждения вокруг ManagementObjectSearcher и ManagementObjectCollection, чтобы убедиться, что они утилизированы должным образом. – SwDevMan81

+0

Вы можете разбить цикл 'foreach', когда продукт основан, заменив' rv = true' на 'return true' (объявление' rv' становится ненужным) – alex

1

ли приложение необходимо запустить 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 
0



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

Просто следуйте этим шагам, чтобы проверить его ...

Открыть запустить
Тип Regedit в том, что и нажмите Enter
Разрешить «Контроль доступа пользователей», нажав на Да
Перейти под HKEY_LOCAL_MACHINE ->ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

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

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

Смежные вопросы