我有一台 1 GB RAM 的电脑(我知道 - 购买选择很糟糕!!)。我想安装该程序BlueStacks,但它需要 2 GB 的 RAM。
有没有什么方法可以告诉 Windows 10 它有 2 GB 的 RAM(即使它没有),以便我可以轻松安装程序?
答案1
在这种情况下,您真正想要做的是欺骗特定的应用程序,而不是 Windows 本身。
潜在问题
首先,显然您的程序不支持这种配置。因此,这确实是一件需要您自担风险的事情。
您可能会想,一旦程序运行,您就可以依靠页面文件来处理已安装物理内存之外的任何 RAM 分配。不幸的是,这并不总是有效,因为相关程序可能会要求特别是物理内存。我知道至少有一个虚拟机/虚拟机管理程序是这样的,如果 Bluestacks 也遇到同样的情况,我也不会感到惊讶。
常规方法
基本上,您需要欺骗安装程序让您安装该程序,或者欺骗程序本身(如果启动时程序碰巧检查的话)。当这些程序/安装程序检查已安装的内存时,它们必须调用 Win32 API 函数来检索物理内存数量。它们可以调用的一些函数示例:
您需要以某种方式让这些函数向程序返回虚假/不正确的结果。
一般来说,您需要使用调试器(例如 windbg)并在这些函数上设置断点,从那里您可以操纵返回值。这是一个手动过程,可能更适合安装程序 - 如果程序本身执行这些检查,您将需要一些自动化的东西。
如果你觉得可以胜任这项任务,你可以编写一个 DLL钩子有问题的 API,然后将 DLL 注入到进程中。然后您可以从自定义启动器执行此操作(...现在感觉这非常类似于激活破解)。像易钩和绕行让这变得更容易。
您可能还会发现以下工具覆盖很有用。这样你就可以避免自己写任何东西。(注意:我从来没有用过这个程序,也不保证它是否对你的系统的稳定性或完整性是安全的。使用时风险自负。)
MSI 安装程序
如果安装程序是 MSI 安装程序,则情况有些特殊。与二进制安装程序不同,MSI 格式是一个记录相当完备的数据库,并且有工具可用于编辑它。如果所需的最小大小只是作为安装程序属性存储的,您可能可以编辑安装程序来更改它。但是,如果它们被嵌入为自定义操作等,那么这种方法可能不起作用。
此 MSDN 论坛主题简要讨论了这个想法(参见 Ji.Zhou 的回复)。不幸的是,虽然他确实建议使用 Orca 查看 MSI,但他也表示这可能不适用于这种情况。
答案2
我想您可以使用虚拟机中的一些代码来获取虚拟内存,并使用专门的映像文件创建一个迷你虚拟机,并告诉虚拟机有 2GB 的虚拟内存,但我不是虚拟化专家。我也很想找到答案,因为我有一台恰好运行 Windows 10 的平板电脑。它有 2GB 的内存,我想在上面玩 Alien Ward。我从以前的经验中知道 Alien Ward 在最低图形设置下使用 1.8GB。我将尝试上一个答案中列出的方法,看看我是否可以在我的小土豆平板电脑上运行这个游戏和其他游戏。