CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 303

303

Chương 8: Đồ họa, đa phương tiện, và in ấn

g.DrawString(text, font, Brushes.Black, 50, 50 + i*60);

}

// Hiển thị hình bitmap trong PictureBox.

pictureBox1.BackgroundImage = b;

pictureBox1.Size = b.Size;

}

}

6.

6.

Th c hi n ch p màn hình Desktop

ự ệ

Th c hi n ch p màn hình Desktop

ự ệ

Bạn cần lấy ảnh chụp của màn hình Desktop hiện thời.

Sử dụng các lời gọi Win32 API

GetDesktopWindow

,

GetDC

, và

ReleaseDC

trong thư

viện user32.dll. Ngoài ra, sử dụng

GetCurrentObject

trong thư viện gdi32.dll.

.NET Framework không cung cấp lớp nào thực hiện việc chụp toàn bộ màn hình (thường được
đề cập là cửa sổ Desktop). Tuy nhiên, bạn có thể truy xuất các đặc tính này bằng cách sử dụng
P/Invoke với Win32 API.
Bước đầu tiên là tạo một lớp đóng gói các hàm Win32 API bạn cần sử dụng. Lớp dưới đây sẽ
khai báo các hàm này và sử dụng chúng trong phương thức công khai

Capture

để trả về một

đối tượng .NET

Image

chứa cửa sổ Desktop:

using System;

using System.Drawing;

using System.Runtime.InteropServices;

using System.Windows.Forms;

public class DesktopCapture {

[DllImport("user32.dll")]

private extern static IntPtr GetDesktopWindow();

[DllImport("user32.dll")]

private extern static IntPtr GetDC(IntPtr windowHandle);

[DllImport("gdi32.dll")]

private extern static IntPtr GetCurrentObject(IntPtr hdc,

ushort objectType);

[DllImport("user32.dll")]

private extern static void ReleaseDC( IntPtr hdc );

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.