บางครั้งสคริปต์ของสคริปต์หรือโปรแกรมต้องการการเลียนแบบการกระทำของผู้ใช้บางอย่าง เช่น การกดปุ่มหรือคลิกเมาส์บนองค์ประกอบ สิ่งนี้สามารถรับรู้ได้ด้วยวิธีการในตัวของภาษาการเขียนโปรแกรมที่เขียนโปรแกรมหรือใช้อินเทอร์เฟซพิเศษของระบบปฏิบัติการ อินเทอร์เฟซดังกล่าวมีไว้สำหรับการโต้ตอบของแอปพลิเคชันโปรแกรมกับโปรแกรมระบบ และเรียกว่า API - Application Programming Interfaces
คำแนะนำ
ขั้นตอนที่ 1
ค้นหาว่าภาษาที่คุณใช้เขียนโปรแกรมหรือสคริปต์มีการจำลองการกดแป้นพิมพ์ในตัวหรือไม่ ตัวอย่างเช่น ใน JavaScript ปุ่มซ้ายของเมาส์ถูกจำลองโดยใช้วิธีการที่เชื่อมโยงกับองค์ประกอบเฉพาะของอินเทอร์เฟซผู้ใช้ ตัวอย่างเช่น หากต้องการจำลองการกดปุ่มซ้ายของเมาส์ขณะที่เคอร์เซอร์อยู่เหนือปุ่มที่ชื่อ autoClkButton ซึ่งอยู่ในรูปแบบชื่อ autoClkForm คุณต้องใช้โครงสร้าง document.autoClkButton.autoClkForm.click () ในภาษานี้ ไม่เพียงแต่ปุ่ม (ปุ่ม, รีเซ็ต, ส่ง) มีคุณสมบัติคลิก () แต่ยังเลือกองค์ประกอบ - ช่องทำเครื่องหมายและตัวเลือกด้วย
ขั้นตอนที่ 2
ใช้ฟังก์ชัน keybd_event ภายนอก หากภาษาที่คุณใช้ไม่มีเครื่องมือในตัวที่คุณต้องทำทุกอย่างโดยอัตโนมัติ นี่คือฟังก์ชัน Win32 API ดังนั้นเพื่อให้สามารถเข้าถึงได้จากโปรแกรมของคุณ คุณควรวางบล็อกที่จุดเริ่มต้นของโค้ดของคุณที่นำเข้าฟังก์ชันของไลบรารีภายนอก ควรทำตามรูปแบบของสภาพแวดล้อมซอฟต์แวร์ที่ใช้ ตัวอย่างเช่น ในภาษาโปรแกรมเทอร์มินัล MQL (ภาษาเมตาโควตส์) สำหรับการซื้อขายหุ้น หากต้องการเรียกใช้ฟังก์ชันที่อยู่ในไลบรารีระบบ user32.dll คุณควรวางบรรทัดต่อไปนี้ที่จุดเริ่มต้นของโค้ด: #import "user32.dll" bool keybd_event (int bVk, int bScan); #import หลังจากนั้นจะสามารถใช้ฟังก์ชัน keybd_event ที่ประกาศไว้ในบล็อกการนำเข้าได้
ขั้นตอนที่ 3
Keybd_event มีสี่พารามิเตอร์ ตัวแรก (bVk ชนิดข้อมูล BYTE) สามารถรับค่าใดค่าหนึ่งจาก 255 ค่า และระบุคีย์ที่จะจำลองเมื่อกด ค้นหาว่าค่าใดถูกกำหนดให้กับคีย์ที่คุณต้องการในหน้านี้ - https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx พารามิเตอร์ที่สอง (bScan, BYTE type) คือ "รหัสสแกน" ที่สร้างขึ้นเมื่อกดปุ่มที่เลือก ที่สาม (dwFlags พิมพ์ DWORD) สามารถใช้ค่าใดค่าหนึ่งหรือทั้งสองค่าที่ระบุ (KEYEVENTF_EXTENDEDKEY และ KEYEVENTF_KEYUP) รหัสแรกระบุว่าจะมีการสร้างรหัสคีย์แบบขยาย และส่วนที่สองระบุว่ามีการกดปุ่มแล้วจึงปล่อย พารามิเตอร์ที่สี่ (dwExtraInfo ชนิด ULONG_PTR) สามารถมีแฟล็กเพิ่มเติมเฉพาะสำหรับแต่ละคีย์