Chia sẻ

Bài trước csharpcanban.com đã hướng dẫn các bạn cách thứ nhất để hiển thị hình ảnh Captcha lên Picturebox. Các bạn có thể xem ở đây.

Nội dung

Giới thiệu

Trong bài này, csharpcanban.com tiếp tục hướng dẫn các bạn cách thứ 2 đơn giản hơn so với cách trước. Mục tiêu là cũng làm hiển thị hình ảnh Captcha lên Picturebox.

Với cách này, các Bạn có thể sử dụng phương thức createControlRange để tạo ra đối tượng controlRange đối với các thành phần không phải là văn bản.

Tiếp theo, cần tìm tới thẻ hình ảnh của Captcha, ví dụ bằng cách sử dụng id hoặc class của ảnh Captcha, sau đó thêm thẻ hình ảnh vào đối tượng controlRange và gọi phương thức execCommand để thực thi lệnh Copy.

Cuối cùng, việc còn lại là lấy hình ảnh từ clipboard và tải lên Picturebox.

Đối với .NET 3.5:

Thêm thư viện MSHTML. Bạn có thể tìm thấy nó trong mục Microsoft HTML Object Library trong tab COM của Reference, tiếp theo chọn mshtml;.

Để hiển thị ảnh Captcha lên Picturebox ta thêm đoạn mã sau:

IHTMLElement2 body = (IHTMLElement2)webBrowser1.Document.Body.DomElement;
IHTMLControlRange controlRange = (IHTMLControlRange)body.createControlRange();
IHTMLControlElement element = (IHTMLControlElement)webBrowser1.Document
    .GetElementById("imgCaptcha").DomElement;
controlRange.add(element);
controlRange.execCommand("Copy", false, null);
pictureBox1.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);

Đối với .NET> = 4.0:

Bạn không cần thêm Reference, bạn có thể tận dụng các biến dynamic:

dynamic body = webBrowser1.Document.Body.DomElement;
dynamic controlRange = body.createControlRange();
dynamic element = webBrowser1.Document.GetElementById("imgCaptcha").DomElement;
controlRange.add(element);
controlRange.execCommand("Copy", false, null);
pictureBox1.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);

Kết quảLưu ý:

  • Hãy chạy mã trên khi trang web đã được tải xong, và nên để đoạn code vào sự kiện DocumentCompleted.
  • Tôi đã kiểm tra bằng cách duyệt trang web: https://demos.captcha.com/demos/features/captcha-demo.aspx và tìm hình ảnh captcha thông c_captchademo_samplecaptcha_CaptchaImage làm id của hình ảnh captcha.
Xem thêm  [C#] Hướng dẫn sử dụng Timer Control

Chúc các bạn thành công !!!

 

 

 

ĐĂNG KÝ MUA HÀNG

    Email (*)

    Điện thoại (*)

    Tên sản phẩm/Dịch vụ:


    Chia sẻ

    Trả lời

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *