2010-05-24 4 views
5

Hem 32-bit hem de 64-bit işletim sisteminde çalışan aC# uygulamasına sahibim. Uygulamamda, Solidworks'ün bilgisayarda yüklü olup olmadığını nasıl kontrol edebilirim. Kayıt defteri anahtarını okuyarak kontrol edebiliriz. ben hem 32-bit hem de 64-bit için yolum. Bunu kontrol etmek için başka yollar varsa bana haber verin.Çek Solidworks yüklü mü?

cevap

4

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

Uygun şekilde atıldığından emin olmak için ManagementObjectSearcher ve ManagementObjectCollection çevresindeki ifadeleri 'kullanıyorum'. – SwDevMan81

+0

Ürün kurulduktan sonra "foreach" döngüsünü kırıp "rv = true" yerine "return true" (rv 'declaration gereksiz hale gelir) – alex

1

aşağıdaki şekilde WMI kullanabilirsiniz uygulama yüklüyse SolidWorks'ü başlamak gerekir mi? Eğer öyleyse, ben bütün Bağımsız başlar (non eklenti) SolidWorks araçları Ben yüklü olup olmadığı Solidworks kontrol etmenin birçok yolu olduğunu düşünüyorum

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 
Bu beginers içindir
0



.... ile ya da değil, fakat Solidworks kurulduğunda perspektifime göre, kayıtta bazı klasörler oluşturur.

Sadece ki ... Bu adımlar kontrol etmek

Açık koşmak
Tip regedit takip edip tıklayarak
'Kullanıcı erişim kontrolü' İzin Enter tuşuna basın Evet

HKEY_LOCAL_MACHINE ->SOFTWARE

Şimdi klasör solidworks aksi değil yüklenmiş bulundu Eğer orada Solidwork klasör girişi mevcuttur mı, değil
kontrol ..!

Bu yardımcı olacaktır umarım!