使用C#从服务器向不同的屏幕发送不同的消息

时间:2016-11-07 07:11:28

标签: c# .net

我们说我有多个屏幕连接到一个CPU。我想要做的是同时向这些屏幕发送不同的消息。

例如:

屏幕1显示"进入过道1"

屏幕2显示"进入过道2"

等等。

是否有可能实现这样的目标,如果是,如何?

1 个答案:

答案 0 :(得分:1)

通过查看System.Windows.Forms.Screen.AllScreens数组,您可以访问连接到计算机的其他屏幕。其中包含附加到系统的所有屏幕的列表,并提供有关每个屏幕的信息。 每个屏幕都由屏幕顶角的某些偏移使用。如果仅连接一个屏幕,则左上角为(0,0)。如果您在1920x1080屏幕的右侧有第二个屏幕,那么第二个屏幕的左上角将是(1920,0)。 例如,这可用于在最后一个屏幕的左上角显示一个表单:

        int lastScreen = System.Windows.Forms.Screen.AllScreens.Length - 1;
        System.Windows.Forms.Screen scr = System.Windows.Forms.Screen.AllScreens[lastScreen];
        System.Windows.Forms.Form f = new System.Windows.Forms.Form();
        f.Location = scr.WorkingArea.Location;
        f.StartPosition = FormStartPosition.Manual;
        f.Show();

同样,这里的快速代码将在每个屏幕上显示一个表单,并带有标签,说明该屏幕的屏幕编号:

        for (int count = 0; count < System.Windows.Forms.Screen.AllScreens.Length; count++)
        {
            System.Windows.Forms.Screen scr = System.Windows.Forms.Screen.AllScreens[count];
            System.Windows.Forms.Form f = new System.Windows.Forms.Form();
            f.Location = scr.WorkingArea.Location;
            f.StartPosition = FormStartPosition.Manual;
            Label screenNumber = new Label();
            screenNumber.Text = "You are looking at screen # " + count.ToString();
            screenNumber.AutoSize = true;
            f.Controls.Add(screenNumber);
            f.Show();
        }

这可以让您在想要做的事情上先行一步。