InstallShield中如何判断IIS是否安装以及安装的版本

游刃有余 发布于 2010/11/26 13:27
阅读 1K+
收藏 2

近期被问及在InstallShield的脚本中如何判断IIS(Internet Information Services)是否被安装,或者是判断目标机上安装的IIS版本。

我们这里是通过读取注册表的方式来进行判断。

对于Basic MSI或InstallScript MSI工程,还可以通过IIS_VERSION属性进行判断,大家有兴趣可以去琢磨一下。

下面是通过注册表方式判断的示例代码(我们在事件响应函数OnAppSearch进行判断)

function OnAppSearch()
    
STRING szKey, szName, svValue, szMsg;
    
NUMBER nvType, nvSize, nvVersion;
begin
    
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); 
    szKey = "SOFTWARE\\Microsoft\\InetStp";          
    szName = "MajorVersion";
    nvType = REGDB_STRING;
    
if(RegDBGetKeyValueEx(szKey, szName, nvType, svValue, nvSize) < 0then
        szMsg = "Please add this role in Server Manager and then run this setup again.";     
        
MessageBox(szMsgSEVERE);
        
abort;
    
else
        
StrToNum(nvVersion, svValue); 
        
if ( nvVersion < 6 ) then
            szMsg = "Please install IIS 6.0 or higher and then run this setup again.";     
            
MessageBox(szMsg, SEVERE);
            
abort;
        
endif;
    
endif;
end;

 

转载自Kevin.Wan博客 http://www.cnblogs.com/installshield

加载中
返回顶部
顶部