2010-05-24 41 views
5

Tôi có ứng dụng aC# chạy trên cả hệ điều hành 32 bit và 64 bit.Trong ứng dụng của tôi, làm cách nào tôi có thể kiểm tra chương trình solidworks được cài đặt hay không trên máy tính. Nếu chúng tôi có thể kiểm tra bằng cách đọc khóa đăng ký, sau đó cung cấp tôi đường dẫn cho cả 32-bit và 64-bit. Cho tôi biết nếu có những cách khác cũng để kiểm tra xem nó.Kiểm tra Solidworks đã được cài đặt chưa?

Trả lời

4

Bạn có thể sử dụng WMI như sau

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

Tôi sẽ ném các câu lệnh 'sử dụng' quanh Trình quản lý tìm kiếm và quản lý đối tượng để đảm bảo chúng được xử lý đúng cách. – SwDevMan81

+0

Bạn có thể phá vỡ vòng lặp 'foreach' khi sản phẩm được thành lập bằng cách thay thế' rv = true' bằng 'return true' (khai báo' rv' trở thành không cần thiết) – alex

1

Liệu các ứng dụng cần phải bắt đầu SolidWorks nếu nó được cài đặt? Nếu vậy, tôi bắt đầu tất cả của tôi Stand-alone (không add-in) công cụ SolidWorks với

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



này là dành cho beginers ....
Tôi nghĩ rằng có rất nhiều cách để kiểm tra dù Solidworks được cài đặt hay không, nhưng theo quan điểm của tôi khi Solidworks được cài đặt, nó tạo ra một số thư mục trong sổ đăng ký.

Chỉ cần làm theo các bước này để kiểm tra xem nó ...

mở chạy
Loại regedit trong đó và nhấn Nhập
phép 'kiểm soát truy cập của người sử dụng bằng cách nhấp vào
Đi theo HKEY_LOCAL_MACHINE ->PHẦN MỀM

Bây giờ kiểm tra có là Solidwork entry thư mục đã có sẵn hay không
Nếu thư mục tìm thấy solidworks cài đặt khác không ..!

hy vọng điều này sẽ hữu ích!

Các vấn đề liên quan