在此只提供部分代码和思路。
所遇到的需求是:
一台主机带俩显示器,第二个显示器在正常情况下是关闭状态。在程序中加一个按钮,控制显示器打开。打开之后,程序将画面扩展到第二个显示器上。
控制屏幕激活的代码也没啥好说的,大概就是这样
private void Awake()
{
Screen.SetResolution(1920, 1080, true);
Debug.Log("屏幕数量" + Display.displays.Length);
if (Display.displays.Length > 1)
{
Display.displays[1].Activate();
}
if (Display.displays.Length > 2)
{
Display.displays[2].Activate();
}
}
在打开程序后,不论如何调用Display.displays.Length,其显示的结果都是1。也没有在api中找到可以更新该参数的方法。没有试过强行调用displays[2],但估计会报错。
目前解决方法是:
使用外部调用程序的方式来处理,即:打开屏幕—>启动新程序—>关闭旧程序,代码如下:
myserial.Write(textWork16(msg));//打开屏幕
Process.Start(@"D:\XXX\XXX\XXX.exe");//打开新程序
Application.Quit();//关闭此程序