2010-05-24 18 views
5

Ho un'applicazione aC# che funziona su entrambi i sistemi operativi a 32 bit e 64 bit. Nella mia app, come posso controllare che SolidWorks sia installato o meno sul computer. Se è possibile controllarlo leggendo la chiave di registro, fornire percorso per entrambi a 32-bit e 64-bit. Dimmi se ci sono altri modi anche per controllarlo.Controllare che Solidworks sia installato?

risposta

4

Si potrebbe utilizzare WMI come segue

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

Vorrei buttare 'using' le istruzioni attorno a ManagementObjectSearcher e ManagementObjectCollection per assicurarmi che siano eliminate correttamente. – SwDevMan81

+0

È possibile interrompere il ciclo 'foreach' quando il prodotto viene fondato sostituendo' rv = true' con 'return true' (la dichiarazione 'rv' non è necessaria) – alex

1

L'applicazione ha bisogno di iniziare a SolidWorks se è installato? Se è così, mi metto tutto il mio stand-alone (non aggiuntivo) strumenti di SolidWorks con

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



Questo è per beginers ....
Penso che ci sono molti modi per verificare se è installato Solidworks oppure no, ma secondo la mia prospettiva quando Solidworks è installato crea alcune cartelle nel registro.

Basta seguire questa procedura per verificare lo ...

Aprire corsa
Tipo regedit in quella e premere Invio
consentira 'il controllo di accesso per l'utente' cliccando sul
Vai a HKEY_LOCAL_MACHINE ->SOFTWARE

Ora verificare che non vi Solidwork voce di cartella è disponibile o non
Se la cartella trovata SolidWorks installato altrimenti non ..!

spero che questo possa aiutare!

Problemi correlati