2010-05-24 7 views
5

J'ai l'application AC# qui fonctionne sur les deux OS 32 bits et 64 bits. Dans mon application, comment puis-je vérifier par programme que SolidWorks est installé ou non sur l'ordinateur.Si nous pouvons le vérifier en lisant la clé de registre, moi chemin pour les deux 32 bits et 64 bits. Dites-moi s'il existe d'autres moyens de vérifier.Vérifiez que Solidworks est installé?

Répondre

4

Vous pouvez utiliser WMI comme suit

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

Je lancerais des instructions 'using' autour de ManagementObjectSearcher et ManagementObjectCollection pour m'assurer qu'elles sont éliminées correctement. – SwDevMan81

+0

Vous pouvez casser la boucle 'foreach' lorsque le produit est fondé en remplaçant' rv = true' par 'return true' (la déclaration' rv' devient inutile) – alex

1

Est-ce que l'application doit commencer SolidWorks s'il est installé? Si oui, je commence tous mes outils SolidWorks avec

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



autonome (non add-in) Ceci est pour beginers ....
Je pense qu'il ya plusieurs façons de vérifier si Solidworks est installé ou pas, mais selon mon point de vue quand Solidworks est installé, il crée des dossiers dans registery.

Il suffit de suivre les étapes suivantes pour le vérifier ...

Ouvert course
type regedit en cela et appuyez sur Entrée
allow 'contrôle d'accès utilisateur' en cliquant sur Oui
Sous HKEY_LOCAL_MACHINE ->SOFTWARE

Vérifiez maintenant il y a Solidwork entrée de dossier est disponible ou non
Si le dossier trouvé Solidworks installé autrement pas ..!

espérons que cela aidera!

Questions connexes