C# 投影仪控制/显示#

C# 投影仪控制/显示#,c#,projector,C#,Projector,我在附近搜索了一下,但找不到任何与我要找的相似的东西。我想知道如何使用C#在二级/三级显示器或投影仪上显示不同的内容。基本上,我想要实现的是在一个特定屏幕(主显示器)上有某种形式的演示者视图(幻灯片),并在辅助屏幕或投影仪上输出。我从未真正尝试过开发具有多个显示输出的产品,因此任何指导都可能必须处于相当明显的水平 如果有人能给我指出如何在C#中处理这类事情的正确方向,我将不胜感激 您可以使用System.Windows.Forms.Screen.AllScreens属性访问Windows知道的所

我在附近搜索了一下,但找不到任何与我要找的相似的东西。我想知道如何使用C#在二级/三级显示器或投影仪上显示不同的内容。基本上,我想要实现的是在一个特定屏幕(主显示器)上有某种形式的演示者视图(幻灯片),并在辅助屏幕或投影仪上输出。我从未真正尝试过开发具有多个显示输出的产品,因此任何指导都可能必须处于相当明显的水平


如果有人能给我指出如何在C#中处理这类事情的正确方向,我将不胜感激

您可以使用
System.Windows.Forms.Screen.AllScreens
属性访问Windows知道的所有监视器的列表。如果您希望使用未经用户配置的显示器,则会变得更加困难-您可能需要使用DirectX初始化和访问显示器适配器。

您可以使用
System.Windows.Forms.Screen.AllScreens
属性访问Windows知道的所有显示器的列表。如果您希望使用未经用户配置的显示,则会变得更加困难-您可能需要使用DirectX初始化和访问显示适配器。

需要与之交互的主要类之一是(这在WinForms命名空间中)。通常,所有屏幕都被视为一组工作区域,您可以使用screen类获取每个屏幕的属性

你可以得到所有这样的屏幕

Screen [] screens = Screen.AllScreens;

是一篇关于在C#中进行多监视器编程的短文。

您需要与之交互的主要类之一是(它位于WinForms命名空间中)。通常,所有屏幕都被视为一组工作区域,您可以使用screen类获取每个屏幕的属性

你可以得到所有这样的屏幕

Screen [] screens = Screen.AllScreens;

是一篇关于在C#中进行多监视器编程的短文。

仅扩展Keven的答案(I+1'd it),Screen.AllScreens数组提供了一个Screen对象数组。Screen对象有一个名为IsPrimary的属性,可用于确定哪个是主屏幕,哪个是次屏幕(duh),它还有一个名为WorkingArea的属性,该属性是一个矩形,用于返回第二个屏幕的所有坐标。关于这一点,最酷的一点是,即使将辅助屏幕配置为位于主屏幕的左侧,WorkingArea.X也将是一个负数,您可以将表单放在那里或其他任何地方。

只需扩展Keven的答案(I+1'd it),screen.AllScreens数组将为您提供一个屏幕对象数组。Screen对象有一个名为IsPrimary的属性,可用于确定哪个是主屏幕,哪个是次屏幕(duh),它还有一个名为WorkingArea的属性,该属性是一个矩形,用于返回第二个屏幕的所有坐标。最酷的一点是,即使将辅助屏幕配置为位于主屏幕的左侧,WorkingArea.X也将是负数,您可以将表单放在那里或其他任何地方。

还记得将要在辅助屏幕上显示的窗口上的属性“StartPosition”设置为“Manual”,否则它将始终显示在主屏幕上。

还记得将要在主屏幕上显示的窗口上的属性“StartPosition”设置为“Manual”辅助屏幕,否则它将始终显示在主屏幕上。

作为相关子问题的一种方式:那么,如何在一个显示器上显示全屏输出,并在另一个显示器上保持控制权?我知道在多显示器设置中使用其他全屏应用程序时,如果您尝试单击其他位置,最终会导致全屏应用程序失去焦点并最小化自身。我应该如何解决这个问题?或者这不是您描述的方法中的一个问题?(我目前无法进行测试。)最简单的方法是创建一个全屏窗口并将其设置为最顶端,使用AllScreens集合中的信息对其进行定位。那么你就不会有单显示器全屏应用程序的传统问题了(在这种应用程序中,它们会尽量减少焦点丢失)。多谢各位,我将尝试一下:)作为一个相关的子问题:那么,如何在一个显示器上显示全屏输出,并在另一个显示器上保留控制权呢?我知道在多显示器设置中使用其他全屏应用程序时,如果您尝试单击其他位置,最终会导致全屏应用程序失去焦点并最小化自身。我应该如何解决这个问题?或者这不是您描述的方法中的一个问题?(我目前无法进行测试。)最简单的方法是创建一个全屏窗口并将其设置为最顶端,使用AllScreens集合中的信息对其进行定位。这样,您就不会遇到单显示器全屏应用程序的传统问题(在这种应用程序中,它们可以最大限度地减少焦点丢失)。非常感谢,我将尝试一下:)