最简单的方法来检测VB.NET应用程序中的Windows PC上是否安装了应用程序?

时间:2010-01-30 20:44:19

标签: vb.net

我知道应用程序的默认安装路径和.exe文件的名称,但有没有办法查看它是否实际安装? 我已经看到了检查注册表项的建议,但是我不知道这个应用程序是否使用了不同用户的不同用户或者是否有所不同。

许多注册条目没有设置默认值。我不喜欢潜水太深,不得不依赖于字体设置的值。

我想知道“App_Name”是否存在。我不能依赖它具有默认值,因为它永远不会。因为我正在使用.GetValueKind,所以我不必担心“AboutSiteUR”具有任何值集,假设它具有它实际存在的类型。否则,我假设Try / Catch会捕获IO.IORegistry类型错误(我不确定那个。)。

Dim sDisplay_Reg_Value As String
Dim Everest_Registry As Microsoft.Win32.RegistryKey = _
        My.Computer.Registry.CurrentUser.OpenSubKey("Software\Company_Name\App_Name")
        Try
            sDisplay_Reg_Value = CType(Everest_Registry.GetValueKind("AboutSiteUR"), String)

2 个答案:

答案 0 :(得分:2)

'如果密钥不存在,Everest_Registry将包含Nothing,否则将填充返回的密钥。试试这个:

    Dim Everest_Registry As Microsoft.Win32.RegistryKey = _
    My.Computer.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Internet Explorer")
    If Everest_Registry Is Nothing Then
        'key does not exist
        MsgBox("Key does not exist")
    Else
        'key is valid, display actual name
        MsgBox(Everest_Registry.Name)
    End If

答案 1 :(得分:0)

应用程序是否显示在“添加/删除程序”控制面板中?如果是,那么肯定会有一些您可以查看的注册表项不会因用户而异。

使用regedit.exe搜索CLSIDs键的子键,如果应用程序文件夹出现在任何子键中,那么这也会因用户而异。

或者你可以问他们。我曾经为一家公司工作,这家公司可以在百思买等公司购买软件。在他们的软件中,每个应用程序都创建了一个特定的注册表项,以便所有应用程序都可以找到彼此。