2016-08-15 48 views
-1

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

+0

这可能是相关的:http://stackoverflow.com/questions/15099523/changing-console-windows-size-throws-argumentoutofrangeexception – NoChance

+0

我不相信,因为我没有改变控制台窗口的高度或宽度。 – PlGGS

回答

-1

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

+0

虽然我可以看到这可能会有所帮助,但遗憾的是我并不在寻找。 Windows带有一些预设分辨率,供计算机在渲染屏幕和窗口时使用。您可以在Nvidia和AMD控制面板中添加这些分辨率。只有在为这些列表中的一个添加新的分辨率后,您的计算机才能在这些分辨率下运行“Halo:Online”等游戏。现在我无法找到一种方法来添加分辨率到这些列表中的一个,而无需手动打开其中一个控制面板并手动设置它们。我不打算设置屏幕分辨率。 – PlGGS

+0

好的,谢谢澄清,@PGGGS。不幸的是,我不知道任何Windows内置的方法来实现这一点。我认为在这种情况下您将不得不使用供应商特定的API。但是,由于图形引擎应该没有任何问题需要以任何(不是预定义的)分辨率进行渲染,可能是有配置文件的分辨率设置?你可以编辑值并测试会发生什么?您的分屏应用程序可以在开始游戏前编辑所有配置文件。 –

+0

我明白了,@Bastian。该应用程序已经定义了用户从您正在使用的PC上定义的分辨率列表中选择的分辨率。在我实现此功能之前,人们会像[this]一样手动执行此操作(https://www.reddit.com/r/HaloOnline/comments/4qi0qm/halo_online_split_screen_done_right/d4tbgz0)。如果您将游戏设置为您的PC没有列出的分辨率,则它会在列表中最靠近它的分辨率下运行。这就是为什么上面的线程中的人不得不为了让它在它上面运行而向队列中添加新的分辨率 – PlGGS