2010-09-30 2 views
0

Я хочу написать программу, которая показывает экран одного компьютера другим ... что-то вроде презентационных систем. как я могу сделать снимок с текущего экрана?Как сделать снимок с экрана?

ответ

2

.NET предоставляет эту функциональность через экран (System.Windows.Forms) класс.

 // the surface that we are focusing upon 
    Rectangle rect = new Rectangle(); 

    // capture all screens in Windows 
    foreach (Screen screen in Screen.AllScreens) 
    { 
     // increase the Rectangle to accommodate the bounds of all screens 
     rect = Rectangle.Union(rect, screen.Bounds); 
    } 

    // create a new image that will store the capture 
    Bitmap bitmap = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb); 

    using (Graphics g = Graphics.FromImage(bitmap)) 
    { 
     // use GDI+ to copy the contents of the screen into the bitmap 
     g.CopyFromScreen(rect.X, rect.Y, 0, 0, rect.Size, CopyPixelOperation.SourceCopy); 
    } 

    // bitmap now has the screen capture 
+0

Благодарим за помощь ... И есть ли другой способ сделать это быстрее? coz копирование с экрана должно быть медленным для моего проекта ... –

+0

Методы GDI + не самые быстрые в мире по любой метрике. Что вы намереваетесь сделать с этим? – Michael

Смежные вопросы