จุดทางเทคนิคของเครื่องเติมน้ำฟอรัม 10.06.2004 |
ตอนแรกฉันคิดว่าแก้ไขบันทึก ฯลฯ ในหน้าเว็บนั้นเหมือนกับในโปรแกรมและสามารถควบคุมได้ด้วยมือจับ แต่ต่อมาฉันรู้ว่าไม่มีที่จับ! หลังจากตรวจสอบเป็นเวลานานฉันเห็นตัวอย่างเกี่ยวกับแอปพลิเคชัน QQ อัตโนมัติเมื่อไม่กี่วันที่ผ่านมา ก่อนอื่นคุณต้องอ้างอิงหน่วย MSHTML ในการใช้งาน รหัสและการวิเคราะห์มีดังนี้: วาจา HFORM: IHTMLFORMELEMENT; HDOC: ihtmldocument2; ฮอลล์: ihtmlelementcollection; HINPUT: IHTMLINPUTELEMENT; IW: iWebrowser2; hlen, tmploop: จำนวนเต็ม; VK: Olevariant; DISPATCH: IDISPATCH; เริ่ม หากได้รับมอบหมาย (WebBrowse1) แล้ว /// ตรวจสอบให้แน่ใจว่ามีเนื้อหาในหน้าเว็บ; เริ่ม HDOC: = WebBrowse1.Document เป็น IHTMLDOCUMENT2; ฮอลล์: = hdoc.get_all; hlen: = hall.get_length; //// ขั้นตอนข้างต้นคือ: กำหนดเนื้อหาในการควบคุมเบราว์เซอร์ให้กับ HDOC //// การดำเนินการต่อไปนี้คือ: วนซ้ำหมายเลขทั้งหมดเพื่อค้นหาการแก้ไขชื่อผู้ใช้และรหัสผ่าน สำหรับ tmploop: = 0 ถึง hlen-1 ทำ เริ่ม vk: = tmploop; Dispatch: = hall.item (vk, 0); หากประสบความสำเร็จ (dispatch.QueryInterface (ihtmlinputElement, hinput)) จากนั้น /// ถ้าตัวระบุนี้เป็นตัวควบคุมการแก้ไข ... เริ่มต้น /////ตัวพิมพ์ใหญ่ด้านล่างเป็นสิ่งจำเป็น! /// "ข้อความ" ด้านล่างถูกกำหนดโดยเนื้อหาบนหน้าเว็บ /// กล่องรหัสผ่านและชื่อผู้ใช้เหมือนกัน! ถ้า uppercase (hinput.type _) = 'text' ดังนั้น hinput.value: = 'tress' อื่นถ้า uppercase (hinput.type _) = 'รหัสผ่าน' จากนั้น hinput.value: = 'tress'; จบ; หากประสบความสำเร็จ (dispatch.QueryInterface (ihtmlformelement, hform)) และ (uppercase (hform.name) = 'theform') จากนั้น /// นี่คือการส่งแบบฟอร์ม /// และไม่จำเป็นต้องตัดสินแอตทริบิวต์ชื่อ แต่ก็สามารถตัดสินได้ตามคุณลักษณะอื่น ๆ hform.submit; สิ้นสุด; สิ้นสุด; จบ; ณ จุดนี้ตัวอย่างของการเข้าสู่ระบบอัตโนมัติพร้อมใช้งาน ค่านิยม; มันเพียงพอแล้วที่นี่ คุณสามารถเพิ่มลงในรหัสด้านบน: วาจา - - IW: iWebrowser2; เริ่ม - IW: = getFrame (3); /// การดำเนินการที่ตามมานั้นเหมือนกันนั่นคือฟังก์ชั่นของการดำเนินการข้างต้นคือการประมวลผลเนื้อหาในกรอบเป็นเว็บเพจ hdoc: = iw.document เป็น ihtmldocument2; ฮอลล์: = hdoc.get_all; - - /// ฟังก์ชั่น getFrame () มีดังนี้และต้องการเพิ่มหน่วย ActiveX ลงในการใช้งาน: ฟังก์ชั่น tfrmain.getFrame (frameno: จำนวนเต็ม): iWebBrowser2; วาจา Olecontainer: iolecontainer; enum: ienumunknown; unk: iunknown; ดึง: plongint; เริ่ม ในขณะที่ webBrowse1.readystate <> ReadyState_Complete ทำ Application.processMessages; ถ้าได้รับมอบหมาย (webrowse.document) แล้ว เริ่ม ดึง: = nil; Olecontainer: = webBrowse.Document เป็น iolecontainer; Olecontainer.enumobjects (Olecontf_embeddings, enum); enum.skip (frameno); enum.next (Olecontf_embeddings, unk, ดึง); ผลลัพธ์: = unk เป็น iWebBrowser2; จบ อื่น ผลลัพธ์: = ไม่มี; จบ; อีกจุดหนึ่งที่จะอธิบายคือการกระโดดของเฟรมในหน้าเว็บ! WebBrowse.navigae ('ที่อยู่เว็บที่จะถ่ายโอน', Flag1, Flag2); พารามิเตอร์ทั้งสองมีประเภท: levariant; พารามิเตอร์แรกไม่จำเป็นต้องมีการกำหนดมันควบคุมตัวเลือกอื่น ๆ สำหรับการเปิดหน้าเว็บ (เช่น: การเปิดในหน้าเว็บใหม่ ฯลฯ ) สิ่งที่เราต้องการใช้งานคือพารามิเตอร์ที่สอง เปิดหน้าเว็บในเฟรม! ด้วยวิธีนี้การเพิ่มตัวจับเวลาและบางรหัสสามารถสร้างเครื่องเติมน้ำที่สมบูรณ์! |