检查WIX安装程序中的RAM

时间:2012-03-19 07:20:08

标签: wix windows-installer

我想创建一个WIX安装程序,在先决条件检查期间,我想查看系统上安装的RAM量。如果它小于1 GB,它应该向用户显示一条消息指示“Amount of系统上的RAM低于本产品所需的最低值。您是否还想继续安装?“ 显示消息框中有两个按钮(是和否)。如果用户单击是,我继续安装,如果用户单击否,我将只显示完成对话框或中止安装。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:7)

Windows Installer将系统RAM量设置为PhysicalMemory property。通常,此属性用作launch condition,它会停止安装并向用户显示消息。

启动条件不允许用户继续。因此,如果这不是一个选项,解决方案是使用custom action。您的自定义操作可以检查PhysicalMemory并显示自定义消息框(如果它不够)。根据用户答案,自定义操作可以返回0继续或1602停止。

答案 1 :(得分:4)

无需自定义操作即可实现您的要求。您可以创建Windows Installer对话框,并将其插入到另外两个对话框(例如WelcomeDlg和VerifyReadyDlg)中,以便根据PhysicalMemory属性有条件地调用它。

以下是WelcomeDlg的ControlEvents和条件:

SpawnDialog NotEnoughMemoryDlg PhysicalMemory< X NewDialog VerifyReadyDlg 1

然后,您创建一个看起来像消息框的对话框,并将其命名为NotEnoughMemoryDlg。为EndDialog返回的Yes按钮设置一个ControlEvent 1.为NoD按钮设置一个ControlEvent,显示EndDialog Exit 1。

如果系统有足够的内存,它将跳过对自定义对话框的调用。如果系统没有足够的内存,它将调用该对话框。如果用户单击是,它将返回并进入下一个控制事件,该事件将您带到VerifyReadyDlg。如果用户单击否,它将返回取消消息并调用设置完成取消对话框。

我在WiX中没有做太多的UI工作(我主要使用InstallShield,但底层的MSI概念是相同的)所以我真的不能给你“做这个”代码。特别是因为我不知道您当前的WiX UI代码是什么样的。 (您使用的是WiXUI扩展吗?)

答案 2 :(得分:3)

您可以按照我的说明show a non-blocking warning for the operating system。根据Cosmin的提法调整这些指令以警告PhysicalMemory属性的价值应该不会太困难。