Foxtable(狐表)用户栏目专家坐堂 → 请问如何检测计算机无安装发布后的项目


  共有2041人关注过本帖树形打印复制链接

主题:请问如何检测计算机无安装发布后的项目

帅哥哟,离线,有人找我吗?
hbhb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13025 威望:0 精华:0 注册:2014/5/15 21:34:00
请问如何检测计算机无安装发布后的项目  发帖心情 Post By:2019/9/3 20:51:00 [只看该作者]

大师:请问如何检测计算机有无安装发布后的项目,比如发布后的项目名称:统计系统.exe?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106857 积分:543492 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/3 21:23:00 [只看该作者]

如果是通过打包的安装程序安装的,可以通过搜索注册表获取所有安装的程序进行判断,如:


Dim reg = {"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"}
Dim tempType As String = Nothing
Dim softNum As Integer = 0
Dim currentKey As Microsoft.Win32.RegistryKey = Nothing

For Each item222 As String In reg
    Dim displayName As Object = Nothing, uninstallString As Object = Nothing, installLocation As Object = Nothing, releaseType As Object = Nothing
    Dim pregkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(item222)
    
    For Each item As String In pregkey.GetSubKeyNames()
        currentKey = pregkey.OpenSubKey(item)
        displayName = currentKey.GetValue("DisplayName")
        installLocation = currentKey.GetValue("InstallLocation")
        uninstallString = currentKey.GetValue("UninstallString")
        releaseType = currentKey.GetValue("ReleaseType")
        Dim isSecurityUpdate As Boolean = False
        
        If releaseType IsNot Nothing Then
            tempType = releaseType.ToString()
            
            If tempType = "Security Update" OrElse tempType = "Update" Then
                isSecurityUpdate = True
            End If
        End If
        
        If Not isSecurityUpdate AndAlso displayName IsNot Nothing AndAlso uninstallString IsNot Nothing Then
            softNum += 1
            
            If installLocation Is Nothing Then
If displayName.ToString() = "统计系统" Then msgbox("有安装")
                Output.Show(displayName.ToString() )
            Else
                Output.Show(displayName.ToString() & "," & installLocation.ToString)
            End If
        End If
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13025 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2019/9/4 9:23:00 [只看该作者]

谢谢!
请问:是否可以列出已安装程序的版本信息?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106857 积分:543492 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/4 9:28:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13025 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2019/9/4 9:43:00 [只看该作者]

 那请问不同的软件版本信息,在注册表中是否固定的键值?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106857 积分:543492 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/4 9:48:00 [只看该作者]

我也不知道,没有分析过注册表

 回到顶部