【问题标题】:How would one set a custom windows control panel resolution in c#?如何在 C# 中设置自定义 Windows 控制面板分辨率?
【发布时间】:2016-08-15 03:27:42
【问题描述】:

我正在创建an application,它会多次运行a game,以便与您的朋友一起玩分屏。在我的应用程序中使用尚未发布的新控制台模式时,您首先必须在控制面板中手动设置两个自定义分辨率。有谁知道我可以在启动游戏实例之前通过 c# 代码设置这些分辨率的方法吗?

【问题讨论】:

标签: c# screen-resolution controlpanel


【解决方案1】:

为了设置分辨率,您必须使用 P/Invoke。有一个来自 MSDN 库 here 的示例(滚动到任务 2)。另一个例子可以找到here,它使用相同的方法。

【讨论】:

  • 虽然我可以看到这有什么帮助,但遗憾的是这不是我想要的。 Windows 带有一些预设分辨率,供计算机在渲染屏幕和窗口时使用。您可以在 Nvidia 和 AMD 控制面板中添加这些分辨率。只有在其中一个列表中添加新分辨率后,您的计算机才能以这些分辨率运行诸如 Halo: Online 之类的游戏。现在,如果不手动打开其中一个控制面板并手动设置它们,我无法找到一种方法来向其中一个列表添加分辨率。我不想设置屏幕分辨率。
  • 好的,感谢@PlGGS 的澄清。不幸的是,我不知道任何 Windows 内置的方式来实现这一点。我认为在这种情况下您将不得不使用供应商特定的 API。但是,由于图形引擎在任何(未预定义的)分辨率下渲染都不应该有任何问题,也许有一个带有分辨率设置的配置文件?您可以编辑这些值并测试会发生什么吗?您的分屏应用可以在开始游戏之前编辑所有配置文件。
  • 我明白了,@Bastian。该应用程序已经定义了用户从您正在使用的 PC 上定义的分辨率列表中选择的分辨率。在我实现这个功能之前,人们会像this 那样手动完成。如果您将游戏设置为以您的 PC 未列出的分辨率运行,它将以列表中最接近它的分辨率运行。这就是为什么上面线程中的人必须在列表中设置一个新的分辨率才能让它运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多