2010-05-24 371 views
5

我有在32位和64位操作系统上运行的ac#应用程序。在我的应用程序中,如何编程检查solidworks是否安装在计算机上。如果我们可以通过读取注册表项来检查它,我的路径为32位和64位。告诉我,如果还有其他方式来检查它。检查Solidworks是否安装?

回答

4

你可以使用WMI如下

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

我会在ManagementObjectSearcher和ManagementObjectCollection周围引用'using'语句以确保它们被正确处置。 – SwDevMan81 2010-05-24 11:42:16

+0

当产品通过'return true'替换'rv = true'时,您可以打破'foreach'循环('rv'声明变得不必要) – alex 2016-02-27 15:36:27

1

申请是否需要,如果它安装到启动的SolidWorks?如果是这样,我开始我所有的单机(非插件)的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



这是beginers ....
我觉得有很多的方法来检查是否SolidWorks是安装或不, 但根据我的观点,当安装Solidworks时,它会在registery中创建一些文件夹。

只要按照这个步骤来检查它...

打开运行
注册表编辑器在和按点击 输入
允许“用户访问控制”是

Go to HKEY_LOCAL_MACHINE - >软件

现在检查有Solidwork文件夹条目是否可用
如果文件夹中找到安装否则不会SolidWorks的..!

希望这会有所帮助!