0

我有一堆为 Windows XP 时代编译的 Windows 32 位全屏 EXE,并使用某些版本的 DirectX 来设置图形模式:320x240x8。它是硬编码的、原生的(不以任何方式伪造),并且无法以任何方式触摸、重新编译或修改二进制文件(不要问)。

我试图让这些在 Windows 7 及更高版本上运行(如果没有正确的卡和驱动程序,它甚至无法在 XP 上运行,只是为了消除任何混乱)。它们仅在显卡及其驱动程序特别支持此模式时才会运行,无论是在 XP 还是 7 上运行,这种情况都极为罕见。

这个问题我研究了很久,无数次向专家寻求帮助,得到了各种可能的解决方案,我都一一尝试过。他们每个人都失败并出现相同的错误:无法设置视频模式。问题始终是它无法设置视频模式。显而易见的解决方案是它无法尝试设置视频模式,因为它不受支持。所以我需要一些可以与这些 EXE 捆绑在一起的小型 EXE,并且可以设置为“环绕”它并欺骗它认为它实际上是在设置模式,而它实际上是在某种模拟视频窗口中运行.

我尝试过“Windows 上的 Wine”、“更改分辨率”的各种实用程序、在 VM 中运行它、兼容性设置等。几乎所有您立即想到的东西。根本没有任何作用。但是即使虚拟机确实有效,它也不会很好,因为它也必须是“可分发的”。

谁能帮我?这甚至有可能解决吗?这似乎很奇怪,以至于不可能“欺骗”程序认为它们确实可以设置视频模式。

我希望真正的专家能够提出一些解决方案。

4

2 回答 2

2

我的驱动程序经验不在视频中,但我认为您应该能够编写一个驱动程序,以您想要的内容响应/拦截 Directx 调用。据我了解,视频堆栈没有过滤器驱动程序

但是,这种模拟模式将需要支持我怀疑的大量直接 ex API。当然,除非通话次数非常少。

显示驱动程序模型 (XDDM) 设计指南应该是您的起点。

于 2012-09-25T04:28:10.087 回答
0

您可能想尝试一下:http: //www.makeuseof.com/tag/2-ways-force-directx-applications-launch-windowed-fullscreen-windows/

概括

  1. DXWIN - 强制 DirectX 程序在窗口中运行。
  2. D3DWindower -- 非常相似的程序。日本程序的英语端口。

过去我曾使用 DXWIN 来让程序脱离我的硬件无法很好处理的全屏模式。不利的一面是,您会得到一个小窗口。

编辑:两个程序都没有提到在 Windows 7 中运行,当然也没有提到 64 位操作系统。如果其中任何一个有效,请发布解决方案,我会为您投票。

于 2012-09-25T04:28:28.323 回答