Chụp ảnh màn hình bằng C#

Có vài cách chụp ảnh màn hình bằng C# nhưng bài viết này chỉ giới thiệu cách duy nhất nhanh & hiệu quả.

Sử dụng thư viện User32.dllGDI32.dll chụp ảnh bạn cần import DLL, kết quả trả về là bitmap với kích thước màn hình.

Bài viết này hướng dẫn 2 cách chụp: chụp full màn hình hoặc chụp hình từ 1 chương trình (process).

Cách 1: chụp full màn hình

Bước 1: tạo mới dự án Windows Form application bằng .NET framework

Bước 2: thêm 1 button để chụp ảnh và 1 picture box để hiển thị ảnh. Picturebox chọn Size Mode là Zoom

Bước 3: Import các function của User32.dllGDI32.dll. Đây là các DLL có sẵn của hệ điều hành Windows, viết bằng C/C++ nên các bạn cần import vào class trước khi sử dụng

Bước 4: tạo sự kiện click button để gọi hàm TakeScreenshot(), sau đó hiển thị lên picture box

Cách 2: chụp từ 1 chương trình

Để chụp cửa sổ của chương trình ví dụ như Chrome thì cửa sổ đó phải on top và phải xác định được process name. Mở Task manager lên, tìm process muốn chụp ảnh, ấn chuột phải chọn Open File Location.

Các bạn sẽ thấy tên process là chrome (bỏ exe)

Code chụp ảnh như bên dưới, đoạn code này sẽ tìm process, nếu tìm thấy sẽ chụp ảnh và lưu thành file screenshot.png

Cách gọi hàm

CaptureApplication("chrome");

Download source code

https://github.com/thigiacmaytinh/TGMTcs/tree/main/3.1_TakeScreenshot