C# 如何强制执行所需的任何显示分辨率/定时?

C# 如何强制执行所需的任何显示分辨率/定时?,c#,graphics,resolution,nvidia,C#,Graphics,Resolution,Nvidia,我很难找到在我的C#程序中强制执行任何显示分辨率/定时的方法。我使用GeForce 210图形卡运行Windows 7。我目前实现这些自定义分辨率的方法是使用驱动程序GUI手动添加自定义分辨率,然后使用Windows调用更改这些分辨率,但我需要一种实时添加新自定义分辨率的方法。我已经研究了NVAPI,但是我没有找到一种方法来实现这一点。我还研究了用于图形驱动程序的命令行工具,但未能使其正常工作。我最后的办法是重写注册表中的值,但我真的希望避免这种情况。我愿意使用不同的编程语言或第三方工具,只要我

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

提前谢谢

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

您可以尝试使用


<>我不确定它是否有英伟达面板提供的所有选项,但肯定是基本的,比如分辨率、刷新率、屏幕方向等。我过去用它来动态地改变屏幕方向(旋转到风景/肖像)。点击一个按钮。

我通过使用NDA版本的NVAPI解决了这个问题。这仍然不是一件小事,但所有的工具都在那里。

你试过了吗?上一次我检查的时候,他们在那里非常好。我已经查看了NVAPI和Nvidia graphics sdk 11,但没有找到任何东西。我申请了他们的注册开发者计划,并在他们的论坛上发布了这个问题,但在两周半的时间里都没有得到回复。他们显然可以做到这一点,因为他们的驱动程序可以做到这一点,但我不确定他们是如何做到的,或者他们是否让外部开发人员可以使用图形卡的功能。mxgg250,您能否提供一些关于快速与NVidia联系以获得NDA版本的建议?我在网上搜索过,他们的网站developer.nvidia.com似乎让你陷入了一个循环,根本无法请求NDA版本。我认为,如果你能分享你的经验,让Nvidia与你一起为NDA的味道工作,会让很多人受益。谢谢。我建议你先成为一名注册开发者,然后向他们的技术支持寻求帮助,以获得NDA版本。然而,获得它并不是一件容易的事情。我很幸运,在NVIDIA有一个联系人,为我推动了事情的发展,但我还是花了将近三个月的时间才真正拥有了API。与他们分享你正在做的工作,因为如果他们觉得你的项目有趣,这真的很有帮助。如果一切顺利,那么在NVIDIA发布任何信息之前,您的公司将必须签署保密协议。我希望这些信息能有所帮助。我忘了/没有时间更新我在这篇文章上的进度,但API的NDA版本给了我解决问题所需的工具。这就是我目前用来在支持的解决方案之间切换的工具。我相信它会读取注册表以查看支持的内容,并且只有在找到解决方案后才会切换到注册表。如果我找不到其他方法来执行此操作,我可能会求助于编辑注册表值,然后使用ChangeDisplaySettings。您不能创建DevMode结构并将•dmPelsWidth•dmPelsHeight设置为所需的任何值吗?这将只允许您更改为支持的显示模式。我试图忽略该设置是否受支持,并强制切换。