หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรื...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  จ้า...
2020-10-18 16:53:21
  พอดีผมเหลื่อแค่ตัดสต๊อก...
2020-05-31 21:49:43
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
การเข้าถึงเอกสาร HTML ผ่านทาง WebBrowser Control (อ่าน 20,366)
ศุภกิจ ทองดี (9'M) บทความโดย: นาย ศุภกิจ ทองดี (9'M)
e-mail: webmaster@sourcecode.in.th
mobile: 09-5009-5351
Line: suppakit.thongdee
Youtube: 9Mcode
Fanpage: Sourcecode.in.th
   
: ดาว์นโหลดตัวอย่างโปรแกรม (ดาว์นโหลด 3,771 ครั้ง)

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 
 
Freelanceรับพัฒนาโปรแกรม และเว็บ โดย 9'M 

พบกันอีกครั้ง สำหรับบทความที่เกี่ยวข้องกับ Visual Basic งานนี้ผมมากับคอนโทรลที่ชื่อว่า WebBrowser Control ซึ่งเป็น คอมโพเนนท์ที่ให้เราสามารถที่จะสร้างส่วนของ WebBrowser เอาไว้ข้างในได้ แถมยังหากได้ศึกษาการเขียนโปรแกรมนี้ แบบลึกๆแล้ว ผมคิดว่าคงเกิดแนวคิดใหม่ๆในการพัฒนาโปรแกรมต่างๆ ได้อีกมากมาก

สำหรับต้นตอของบทความนี้ เกิดจากการที่ผมได้ข่าวไปอ่านกระทู้ที่ Pantip.com ซึ่งมีผู้ตั้งกระทู้ถาม เรื่องการ Disable การคลิกเมาส์ขวาบน WebBrowser ที่สร้างในโปรแกรมของตัวเอง ช่วงแรกที่ผมยังไม่ได้ศึกษาเรื่องเกี่ยวกับ IHTTPDocument ก็เลยตอบไป 1 วิธี(ที่คิดออกในตอนนั้น) คือใช้วิธี Get ไฟล์ html นั้นๆมา แล้วทำการแก้ไข โดยใส่ code ที่เป็น JavaScript ที่ใช้การตรวจสอบการคลิกของผู้ใช้ เข้าไป จากนั้นก็ใช้ WebBrowser โหลดไฟล์นั้นขึ้นมา แต่...ดูเหมือนว่า วิธีดังกล่าวไม่ค่อยเวิร์คเท่าไหร่ เลยหาข้อมูลไปเรื่อยๆ จนไปพบบทความที่เขียนโดย Mr. Richie Simenetti ก็พบคำตอบ ถึงวิธีการ ที่ทำได้อีกวิธีนึง

พูดกันมาซะยาว งานนี้ก็มาทดลองเขียนโปรแกรมกัน เลยและกันครับ โดยเริ่มจากเปิดโปรแกรม Microsoft Visual Basic เลือกสร้างโปรเจ็ก Standard EXE แล้วทำตามขั้นตอนดังนี้

1. ทำการเลือก Internet WebBrowser Control และ Microsoft HTML Object Library จากเมนู Project->Components ดังแสดงในรูป

2. จะปรากฏ Control ที่เราเลือกที่ไว้จากขั้นตอนที่แล้วบน ToolBox ให้ทำการเลือก Control ต่างๆตามตาราง แล้วจัดวางดังรูป

Name Property Value
Text1 Text [ว่าง]
CommandButton1 Caption &Go
WebBrowser1

3. ทำการคัดลอกโค้ดนำไปใส่ในส่วน View Code

Private WithEvents HDoc As HTMLDocument

Private Sub Command1_Click()
 If Text1.Text <> "" Then WebBrowser1.Navigate Text1.Text
End Sub

Private Sub Form_Load()
 WebBrowser1.Navigate "about:blank"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
 If (pDisp Is WebBrowser1.Object) Then
  Set HDoc = WebBrowser1.Document
 End If
End Sub

Private Sub HDoc_onMouseDown()
 Dim Elem As IHTMLElement
 Set Elem = HDoc.parentWindow.event.srcElement
 If HDoc.parentWindow.event.button = 2 Then
  Dim msg As String
  Select Case UCase$(Elem.tagName)
   Case "A": MsgBox "tag : A href= " & Elem.href
   Case "BODY": MsgBox "tag : BODY"
   Case "IMG": MsgBox "tag : IMG src= " & Elem.src
  End Select
  
 End If
End Sub

4. เมื่อเสร็จแล้ว ก็ทดลอง Run โปรแกรมกันเลยครับ ทดลองพิมพ์ URL ที่ต้องการแล้วกดปุ่ม Go , และเมื่อทำการโหลด Web ที่ต้องการเป็นที่เรียบร้อยแล้ว ให้ทดลองคลิกขวาไปยังส่วนต่างๆ จะปรากฏผลดังรูป
***หมายเหตุ หากคุณทดสอบกับบางเว็บที่ใช้ Frame จะไม่ได้ผลดังรูปนะครับ (ไม่เชื่อลองกับ www.sourcecode.in.th ดูสิ) เหตุผล อยู่ในช่วงของการอธิบายโปรแกรมครับ

อธิบายโปรแกรม
มาถึงช่วงของการอธิบายโปรแกรมกันแล้วนะครับ จะได้รู้กันซะทีว่าอะไรมันเป็นอะไร ก่อนอื่นเรามาเริ่มจาก

Private WithEvents HDoc As HTMLDocument

เป็นส่วนของการประกาศตัวแปรแบบ HTMLDocument เพื่อใช้ในการติดต่อกับไฟล์ HTML พร้อมทั้งสามารถเขียนโปรแกรม ในส่วน Event ได้ด้วย ดังแสดงอยู่ในส่วนของ Private Sub HDoc_onMouseDown ซึ่งเป็น Event ที่เกิดขึ้น เมื่อมีการ คลิกบนเอกสาร HTML

ส่วนสำคัญอีก 1อย่าง ก็คือ Event WebBrowser1_DocumentComplete ที่จะเกิดขึ้นเมื่อWebBrowser ทำการ โหลด เอกสาร HTML มาเรียบร้อยแล้ว ต่อมาเราจะทำการตรวจสอบว่าเอกสารที่ได้มานั้นเป็นเอกสาร ที่เป็น HTML อย่างเดียวหรือเปล่า ถ้าใช่ จะทำการกำหนด เอกสารที่ได้ให้กับ ตัวแปร HDoc ที่เราสร้างขึ้น (ในบางกรณีที่ไม่ใช่ เกิดจาก ไฟล์ HTML ที่เราโหลดนั้นมีการแบ่ง Frame ครับ ทดลองดูได้ครับอันนี้)

และสุดท้ายที่เราจะพูดถึงกันก็คือส่วนของ Sub HDoc_onMouseDown ที่จะถูกเรียกใช้มือมีการคลิกที่เอกสาร เราจะทำการ สร้างตัวแปร แบบ IHTMLElement มารับค่าของ Object ที่ถูก Event ต่างๆ กระทำ ทำให้เรารู้ถึง tag และ property ของเอกสาร HTML ครับ

ปิดท้าย
โปรแกรมนี้อธิบายได้ค่อนข้างยากขึ้นมานิดหน่อยนะครับ ก็อยากให้เพื่อนๆลองไล่โค้ดดู ก็คงพอจะเข้าใจกันนะครับ หากมีข้อสงสัย ก็เมล์มาถามกันได้ที่ webmaster@sourcecode.in.th แล้วพบกันใหม่ กับ 9'M ครับ:-P

: ดาว์นโหลดตัวอย่างโปรแกรม (ดาว์นโหลด 3,771 ครั้ง)
 

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

สอบถาม
  • ห้ามการโฆษณา หากต้องการติดต่อหาลูกค้า ติดต่อโฆษณาโดยตรงได้ที่ webmaster@sourcecode.in.th
  • ห้ามใช้คำหยาบและคำพูดที่ไม่เหมาะสม
  • ขอสงวนสิทธิหากตรวจพบ ข้อความที่ไม่เหมาะสม ข้อความนั้นจะถูกลบทันที
ชื่อ
อีเมล์
รายละเอียด

 
 
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
บทความที่เกี่ยวข้อง

บันทึกภาพจาก WebCam

เขียนโปรแกรม visual basic 6 แสดงภาพจาก กล้อง WebCam ของคุณ

การ Ping หมายเลข IP

View Source ของเว็บด้วย Inet (Microsoft Internet Tranfer Control)

ส่ง Broadcast ข้อมูล ด้วย VB

Client/Server โดยใช้ UDP ผ่านทาง MS Winsock

โปรแกรม Daytime (ตัวอย่างการใช้ Winsock Control)

การใช้งาน Winsock Control

แสดงสถานะการดาวน์โหลดเว็บเพจ
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th