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.
Chúc các bạn thành công !!!