C# 是否已安装Solidworks?

C# 是否已安装Solidworks?,c#,solidworks,C#,Solidworks,我有一个在32位和64位操作系统上运行的c#应用程序。在我的应用程序中,我如何通过编程检查计算机上是否安装了solidworks。如果我们可以通过读取注册表项来检查它,那么为我提供32位和64位的路径。告诉我是否还有其他方法来检查它。您可以使用WMI,如下所示 private static bool IsInstalled(string ProductName) { bool rv = false; ManagementObjectSearcher searcher = new

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

您可以使用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;           
}

如果安装了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



这是给初学者的……
我认为有很多方法可以检查是否安装了Solidworks, 但根据我的观点,当安装Solidworks时,它会在注册表中创建一些文件夹。

只需按照以下步骤进行检查…

打开运行
在其中键入regedit,然后按 通过单击进入允许“用户访问控制” 是
进入HKEY_本地_机器->软件

现在检查是否有
Solidwork
文件夹条目可用
如果发现文件夹已安装solidworks,否则不


希望这会有帮助

我会在ManagementObjectSearcher和ManagementObjectCollection周围抛出“using”语句,以确保它们被正确处理。当通过将
rv=true
替换为
return true
创建产品时,您可以打破
foreach
循环(不需要
rv
声明)