InstallScript之系统变量SYSINFO

来源:互联网 发布:windows xp声卡驱动 编辑:程序博客网 时间:2024/05/01 13:14

SYSINFO

安装程序初始化期间,安装将设置SYSINFO结构变量的成员以标识目标计算机的操作平台。通过检查分配给此变量成员的值,脚本可以确定以下信息:

操作系统

操作系统的主要版本号和次要版本号

操作系统的颠覆

Internet Explorer的版本

最新的安装的服务包

如果最终用户在Windows NT下具有管理员权限

如果最终用户是高级用户

如果系统是64位的

如果系统是虚拟机

系统语言的语言ID,用户语言和操作系统语言

下表显示了每个SYSINFO成员的含义:

会员

含义

SYSINFO.bIntel

如果为TRUE,则处理器为Intel

SYSINFO.bIsVirtualMachine

如果为TRUE,则检测到虚拟机。

有关更多信息,请参阅检测是否正在虚拟机上运行安装

SYSINFO.bIsWow64

如果安装在64位平台上运行,则此值不为零。

SYSINFO.bShellExplorer

如果为TRUE,则shell为资源管理器。

SYSINFO.bWinServer2003R2

如果此成员为TRUE,则操作系统是Windows Server 2003 R2

SYSINFO.nISOSL

值表示目标机器的操作系统。可能的值如下:

ISOSL_WIN2000 - Windows 2000

ISOSL_WINXP - Windows XP

ISOSL_WINSERVER2003 - Windows Server 2003

ISOSL_WINVISTA_SERVER2008(或ISOSL_WINVISTA -注意Windows VistaWindows Server 2008使用相同的主版本号和次版本号。因此,如果要使用InstallScript来区分Windows Server 2008Windows Vista请检SYSINFO.nOSProductType = VER_NT_WORKSTATION; 对于Windows Vista,这是TRUE; 对于Windows Server 2008,它是FALSE

ISOSL_WIN7_SERVER2008R2 - Windows 7Windows Server 2008 R2

ISOSL_WIN8 - Windows 8Windows Server 2012

注意:多个客户端和服务器版本的Windows使用相同的主版本号和次版本号:

Windows 8Windows Server 2012使用相同的主要和次要版本号。

Windows 7Windows Server 2008 R2使用相同的主版本号和次版本号。

Windows VistaWindows Server 2008具有相同的主版本号和次版本号。

因此,对于这些操作系统版本,安装将客户端版本视为与等效服务器版本相同; 因此,标记为客户端版本的组件也安装在服务器版本上。要区分客户端和服务器版本,可以检查SYSINFO.nOSProductType是否等于VER_NT_WORKSTATION; 在客户端版本上,这是真的。在服务器版本上,这是错误的。

SYSINFO.nOSMajor

值表示操作系统的主要版本号。

SYSINFO.nOSMinor

值表示操作系统的主要版本号。

SYSINFO.nOSProductType

值表示为当前平台定义的Windows OSVERSIONINFOEX结构的wProductType可能的值如下:

VER_NT_WORKSTATION

VER_NT_DOMAIN_CONTROLLER

VER_NT_SERVER

您也可以#定义并测试wProduct类型支持的任何其他常量。OSVERSIONINFOEX结构记录在http://msdn.microsoft.com/library/en-us/sysinfo/base/osversioninfoex_str.asp

SYSINFO.nOSSuiteMask

值表示为当前平台定义的Windows OSVERSIONINFOEX结构的wSuitesMask可能的值如下:

VER_SUITE_BACKOFFICE

VER_SUITE_DATACENTER

VER_SUITE_ENTERPRISE

VER_SUITE_PERSONAL

VER_SUITE_SMALLBUSINESS

VER_SUITE_SMALLBUSINESS_RESTRICTED

VER_SUITE_TERMINAL

你也可以#定义和测试wSuiteMask支持的任何其他常量。OSVERSIONINFOEX结构记录在http://msdn.microsoft.com/library/en-us/sysinfo/base/osversioninfoex_str.asp

SYSINFO.nSuites

一个或多个位标志的组合,指示目标机器上的一个或多个套件。可能的位标志如下:

ISOS_ST_ALL

ISOS_ST_XP_PRO

ISOS_ST_XP_HOME

ISOS_ST_SERVER

ISOS_ST_SERVER2003_R2

ISOS_ST_WORKSTATION

ISOS_ST_BACKOFFICE

ISOS_ST_DATACENTER

ISOS_ST_ENTERPRISE

ISOS_ST_SERVER2003_R2

ISOS_ST_SMALLBUSINESS

ISOS_ST_SMALLBUSINESS_RESTRICTED

ISOS_ST_TERMINAL

0(零) -表示目标机器上没有检测到任何套件

要检查是否设置了位标志,请使用按位AND(&)运算符,如下例所示:

如果(SYSINFO.nSuitesISOS_ST_XP_HOME)那么

    / *执行操作

    特定于Windows XP Home Edition* /

万一;

注意:这里列出的套件是可以在Windows APIOSVERSIONINFOEX数据结构中指定的套件(如http://msdn.microsoft.com/library/en-us/sysinfo/base/osversioninfoex_str.asp所述)。

SYSINFO.nSystemDefaultUILangID

值表示安装的操作系统语言的ID

SYSINFO.nSystemLangID

值表示系统语言的ID

SYSINFO.nUserLangID

值表示用户语言的ID

SYSINFO.nWinMajor

值表示Windows主版本号。

SYSINFO.nWinMinor

值表示Windows次要版本号。

SYSINFO.szInstalledIEVersion

值表示系统上的Internet Explorer版本。该成员受版本4和更高版本的支持。如果安装的版本早于4,则值为空(“”)。

注意:不要依赖这个事实,即对于早于4的版本这个值是空的。相反,特别是对于4或更高版本进行测试,因为将来这个成员变量可以支持检测早于4Internet Explorer版本。

SYSINFO.WINNT.bAdmin_Logged_On

如果此成员为TRUE,则最终用户将以管理员权限在NT下登录。

SYSINFO.WINNT.bPowerUser_Logged_On

如果该成员为TRUE,则当前用户属于超级用户组。

SYSINFO.WINNT.bWin7_Server2008R2

如果此成员为TRUE,则操作系统是Windows 7Windows Server 2008 R2

SYSINFO.WINNT.bWin8

如果此成员为TRUE,则操作系统是Windows 8Windows Server 2012

SYSINFO.WINNT.bWinNT

如果此成员为TRUE,则操作系统为Windows NT(包括Windows 2000Windows XP)。

SYSINFO.WINNT.bWinVista_Server2008 

SYSINFO.WINNT.bWinVista

如果SYSINFO.WINNT.bWinVista_Server2008SYSINFO.WINNT.bWinVistaTRUE,则操作系统为Windows VistaWindows Server 2008

要区分Windows Server 2008Windows Vista,请检查SYSINFO.nOSProductType是否等于VER_NT_WORKSTATION; 对于Windows Vista,这是TRUE; 对于Windows Server 2008,它是FALSE

SYSINFO.WINNT.bWinXP

如果这个成员是TRUE,那么操作系统是Windows XP

SYSINFO.WINNT.bWin2000

如果这个成员是TRUE,那么操作系统是Windows 2000

SYSINFO.WINNT.bWinServer2003

如果此成员为TRUE,则操作系统是Windows Server 2003Windows Server 2003 R2

SYSINFO.WINNT.nServicePack

已安装的服务包的数量。

安装程序通过调用Windows API GetVersionEx并读取nServicePackMajor值来获取此信息。

SYSINFO成员

如果目标系统上的操作系统是Windows XP,则以下代码片段将显示一个消息框。

    如果(SYSINFO.WINNT.bWinXP)那么

        MessageBox(“在WindowsXP上安装”,INFORMATION;

    万一;

来自 <http://helpnet.flexerasoftware.com/installshield19helplib/Subsystems/installshield19langref/helplibrary/LangrefSYSINFO.htm>