【问题标题】:How can I force any display resolution/timing I want?我怎样才能强制任何我想要的显示分辨率/时间?
【发布时间】:2011-07-26 18:58:27
【问题描述】:

我很难找到一种方法来强制在我的 C# 程序中使用我想要的任何显示分辨率/时间。我正在使用 GeForce 210 显卡运行 Windows 7。我目前实现这些自定义分辨率的方法是使用驱动程序 GUI 手动添加自定义分辨率,然后使用 Windows 调用更改为这些分辨率,但我需要一种实时添加新自定义分辨率的方法。我已经查看了 NVAPI,但我无法找到一种方法来做到这一点。我还研究了图形驱动程序的命令行工具,但我无法让它工作。我最后的手段是重写注册表中的值,但我真的很想避免这种情况。我愿意使用不同的编程语言或第三方工具,只要我可以通过我的程序从命令行调用它。谁能指出我正确的方向?

提前致谢。

更新(2011 年 8 月 16 日): 我一直在与 NVIDIA 合作解决这个问题,他们为我提供了一个高级 NVAPI,允许我重新创建他们的驱动程序的功能。他们还确认,他们提供的 NVAPI 基本版本不会这样做。

【问题讨论】:

  • 你试过developer.nvidia.com吗?上次我检查他们那里还不错。
  • 我查看了 NVAPI 和 Nvidia graphics sdk 11 并没有找到任何东西。我申请了他们的注册开发者计划并在他们的论坛上发布了这个问题,但在两个半星期内都没有得到回复。他们显然可以这样做,因为他们的驱动程序可以做到这一点,但我不确定他们是如何做到的,或者他们是否将显卡的该功能提供给外部开发人员。
  • mxgg250,您能否提供有关与 NVidia 联系以获取 NDA 版本的快速途径的任何指示?我在网上搜索过,他们的网站 developer.nvidia.com 似乎让你陷入了一个循环,基本上无法请求 NDA 版本。我认为,如果您能分享您让 Nvidia 与您合作以实现 NDA 风格的经验,将会使很多人受益。谢谢。
  • 我建议您先注册:开发人员 developer.nvidia.com/user/register>,然后向他们的技术支持寻求帮助以获取 NDA 版本。然而,获得它并不是一件容易的事。我很幸运在 NVIDIA 有一位联系人为我推动了事情的发展,但我仍然花了将近三个月的时间才真正拥有 API。与他们分享你正在做的事情,因为如果他们觉得你的项目很有趣,这真的很有帮助。如果一切顺利,那么您的公司必须在 NVIDIA 发布任何信息之前签署 NDA。
  • 我希望这些信息能有所帮助。我忘记/没有时间更新这篇文章的进度,但 API 的 NDA 版本为我提供了解决问题所需的工具。

标签: c# graphics resolution nvidia


【解决方案1】:

你可以试试ChangeDisplaySettings

我不确定它是否具有 nvidia 面板提供的所有选项,但肯定是分辨率、刷新率、屏幕方向等基础知识。过去我自己使用它来动态更改屏幕方向(旋转到横向/纵向)单击按钮。

【讨论】:

  • 这是我目前用来在支持的分辨率之间切换的。我相信它会读取注册表以查看支持的内容,并且只有在找到解决方案时才会切换到它。如果我无法找到其他方法来执行此操作,我可能会求助于编辑注册表值,然后使用 ChangeDisplaySettings。
  • 你不能创建一个 DevMode 结构并将 •dmPelsWidth •dmPelsHeight 设置为任何你想要的吗?
  • 这只会让您更改为支持的显示模式。我试图忽略该设置是否受支持并强制切换。
【解决方案2】:

我能够通过使用 NVAPI 的 NDA 版本解决这个问题。它仍然不是微不足道的,但所有工具都在那里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    相关资源
    最近更新 更多