2010-05-24 30 views
5

Tengo una aplicación de CA que se ejecuta en sistemas operativos de 32 bits y de 64 bits. En mi aplicación, ¿cómo puedo verificar programáticamente si SolidWorks está instalado o no en la computadora? Si podemos verificarlo leyendo la clave de registro, proporcionemos mi ruta tanto para 32 bits como para 64 bits. Dígame si hay otras maneras de verificarlo.Verificar si Solidworks está instalado?

Respuesta

4

Se podría utilizar WMI de la siguiente manera

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

Me gustaría lanzar declaraciones 'using' alrededor de ManagementObjectSearcher y ManagementObjectCollection para asegurarse de que se desechen correctamente. – SwDevMan81

+0

Puede romper el bucle 'foreach' cuando se crea el producto reemplazando 'rv = true' por' return true' (la declaración 'rv' se vuelve innecesaria) – alex

1

que hace la aplicación necesita para empezar a SolidWorks si está instalado? Si es así, me pongo toda mi autónomo (no de complemento) con herramientas de 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



Esto es para principiantes ....
Creo que hay muchas maneras de comprobar si está instalado Solidworks o no, pero según mi perspectiva cuando se instala Solidworks, crea algunas carpetas en el registro.

sólo tienes que seguir estos pasos para comprobar que ...

abierto plazo
Tipo regedit en eso y pulse Enter
Permitir 'de control de acceso del usuario haciendo clic en Sí
Ir a HKEY_LOCAL_MACHINE ->SOFTWARE

Ahora Compruebe que no Solidwork entrada de la carpeta está disponible o no
Si la carpeta encontró SolidWorks instalado de otra manera no ..!

Espero que esto ayude!

Cuestiones relacionadas