CCM 发表于 2011-3-31 14:15:54

软件安装注册表判断

大家好

从论坛搜寻到以下程式码:
        $i=1
        $Regkey="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
        While 1
                $i=$i+1
                $var = RegEnumKey($Regkey, $i)                       
                        If $var="Microsoft .NET Framework 4 Client Profile" Then
            MsgBox(0,"Auto Install Script","Microsoft .NET Framework 4 Client 已安装")                               
                        If @error <> 0 then ExitLoop                               
                        ExitLoop                       
                EndIf               
        WEnd       
       

;~                                 RunWait("dotNetFx40_Full_x86_x64.exe /norestart /passive ")
;~                                 msgbox(0, " Auto Install Script ", " dotNET Framework 4.0 安装完成 ",1)

目前已经可以判断出有安装这个DFN4这软件,可是机器上要是没有安装这软件,该怎么把最後两行程式码加进去,好让机器开始安装。

502762378 发表于 2011-3-31 17:30:34

这样OK吗?
$i=1
$Regkey="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
While 1
        $i=$i+1
        $var = RegEnumKey($Regkey, $i)                        
                If $var="Microsoft .NET Framework 4 Client Profile" Then
                        MsgBox(0,"Auto Install Script","Microsoft .NET Framework 4 Client 已安装")                              
                Else
                        RunWait("dotNetFx40_Full_x86_x64.exe /norestart /passive ")
                        If $var="Microsoft .NET Framework 4 Client Profile" Then   msgbox(0, " Auto Install Script ", " dotNET Framework 4.0 安装完成 ",1)
                If @error <> 0 then ExitLoop                              
                        ExitLoop                        
                EndIf               
WEnd

CCM 发表于 2011-4-1 09:47:50

感谢 502762378 回答
测试过,这样子还是会直接运行安装,并没有因为已经安装过而跳过安装。
後来有查到dnf的资料夹位置在WINDOWS\Microsoft.NET\Framework
就改用FileExists,暂时解决这问题。

如果您能再帮忙想想,小弟不胜感激。
因为这样可以用来判断注册表,将来应用的范围很大。
页: [1]
查看完整版本: 软件安装注册表判断