Программно снять screen со второго монитора

аватар: oren_customer
Звание: Наблюдатель
Сообщений: 1

Есть некий компьютер с двумя постоянно подключенными мониторами, нужно время от времени снимать скрин со 2го (всегда со второго), ну в идеале конечно возможность выбирать, но если получится всегда со второго - уже хорошо. Я хотел реализовать это с помощью класса Screen.

// получаю дисплеи 
public Screen GetM2()
        {
            foreach (var screen in System.Windows.Forms.Screen.AllScreens)
            {
                listDisplays.Items.Add("Device Name: " + screen.DeviceName);
                listDisplays.Items.Add("Bounds: " + screen.Bounds.ToString());
                listDisplays.Items.Add("Type: " + screen.GetType().ToString());
                listDisplays.Items.Add("Working Area: " + screen.WorkingArea.ToString());
                listDisplays.Items.Add("Primary Screen: " + screen.Primary.ToString());
 
                m2 = screen;
            }
            return m2;
        }

      // собственно делаю скрин
       private Bitmap bmp;
        private void btnGetScreen_Click(object sender, EventArgs e)
        {
            if (!Screen.PrimaryScreen.Primary)
            {
                pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                Image pr = TakeScreenShot(m2);
                bmp = new Bitmap(pr);
                pictureBox1.Image = bmp;                                               
            }
            else
            {
                MessageBox.Show("This Dispaly is a primary");            
            }
        }

В общем не могу понять как снять скрин не с активного, а именно с дополнительного монитора.

ВложениеРазмер
ScreenTester.zip53.43 КБ
аватар: oren_customer
Звание: Наблюдатель
Сообщений: 1

Так по идее можно, сейчас комп с 2-м моником не под рукой, завтра протестирую

        private void btnGetScreen_Click(object sender, EventArgs e)
        {
            foreach (var screen in System.Windows.Forms.Screen.AllScreens)
            {
                if (!screen.Primary)
                {
                    listDisplays.Items.Add(screen.DeviceName);
 
                    pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                    Image pr = TakeScreenShot(screen);
                    bmp = new Bitmap(pr);
                    pictureBox1.Image = bmp;
                    //TakeScreenShot(screen);
                }                
            }
        }

аватар: ukoviaz
Звание: Наблюдатель
Сообщений: 1

Второй монитор как подключать?

аватар: Va-Bank
Звание: Гуру
Сообщений: 8223

ukoviaz написал(а):

Второй монитор как подключать?

В плане как делать это физически к компу? Ну в видеокарте должен быть второй видеовыход. Подключаешь второй монитор и радуешься.

__________________

Используя трассировку кода, можно избежать ламерских вопросов!

]]>]]>