ผู้ควบคุมประเภท "เมาส์" เป็นคุณลักษณะที่จำเป็นของคอมพิวเตอร์ทุกเครื่อง หากปราศจากมัน เป็นไปไม่ได้ที่จะจินตนาการถึงการควบคุมหรือการนำทางผ่านแอปพลิเคชัน เครื่องมือจัดการนี้โต้ตอบกับผู้ใช้อย่างแข็งขันโดยแสดงการกระทำของเขา (การเคลื่อนไหว, การคลิก, การเลื่อน) บนหน้าจอ สำหรับงานเขียนโปรแกรมบางอย่าง อาจจำเป็นต้องมีการจำลองเมาส์ซอฟต์แวร์
มันจำเป็น
สภาพแวดล้อมการพัฒนา Microsoft Visual C ++. Net (ไม่ต่ำกว่า 2003)
คำแนะนำ
ขั้นตอนที่ 1
ติดตั้ง Microsoft Visual C ++. Net (2003 หรือใหม่กว่า) สภาพแวดล้อมการพัฒนานี้มีหลายเวอร์ชัน ทั้งแบบชำระเงินและฟรี สามารถดาวน์โหลดได้จากเว็บไซต์ของผู้พัฒนา หลังการติดตั้ง ให้สร้างโครงการใหม่และเชื่อมต่อ System. Windows. Forms และ System. Drawing ดังแสดงด้านล่าง: โดยใช้ System. Windows. Forms; ใช้ System. Drawing;
ขั้นตอนที่ 2
หากต้องการเลื่อนเมาส์ไปบนหน้าจอในระบบปฏิบัติการ Windows ให้ใช้ฟังก์ชันที่กำหนดตำแหน่งของเคอร์เซอร์บนหน้าจอโดยตรง ใช้ตัวอย่างเช่น รหัสต่อไปนี้: Cursor. Position = new Point (x, y) บรรทัดนี้จะย้ายเคอร์เซอร์ไปยังตำแหน่งที่ระบุในตัวสร้างของคลาส Point (x, y) (โดยที่ x และ y คือ พิกัดตำแหน่งที่ควรวางเคอร์เซอร์) … หากคุณต้องการกำหนดตำแหน่งเคอร์เซอร์ซ้ำๆ ให้สร้างอินสแตนซ์ของคลาส Point และใช้วิธีเปลี่ยนพิกัด สิ่งนี้จะช่วยประหยัดหน่วยความจำ: Point point = new Point (0, 0); Cursor. Position = point. Offset (20, 100); Cursor. Position = จุด ออฟเซ็ต (40, -20); รหัสนี้สร้างวัตถุของคลาส Point () ด้วยพิกัด 0, 0 บรรทัดที่สองเลื่อนจุด 20 พิกเซลใน X และ 100 พิกเซลใน Y พิกัดปัจจุบันที่ชี้โดยวัตถุจุดคือ 20, 100 บรรทัดที่สาม เกิดขึ้นอีกครั้ง Offset Point ตามจำนวนพิกเซลที่ระบุ (40 และ -20 ตามลำดับ) พิกัดปัจจุบันคือ 60 (20 + 40) ใน X และ 80 (100-20) ใน Y
ขั้นตอนที่ 3
ใช้ฟังก์ชัน Win32 SendInput () หรือ mouse_event () เพื่อจำลองการคลิกเมาส์ ตัวอย่างเช่น ในการจำลองคลิกขวาโดยทางโปรแกรม ให้ใช้รหัสต่อไปนี้: // import mouse_event (): [DllImport ("User32.dll")] static extern void mouse_event (MouseFlags dwFlags, int dx, int dy, int dwData, UIntPtr dwExtraInfo); // เพื่อความสะดวกในการใช้งาน ให้สร้างการแจงนับที่มีค่าคงที่ที่จำเป็น (แฟล็ก) // ที่กำหนดการทำงานของเมาส์: [Flags] enum MouseFlags {Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, Absolute = 0x8000 }; // use - คลิกที่พิกัดด้านล่าง: const int x = 39000; // พิกัดโดย Xconst int y = 12000; // พิกัดโดย Ymouse_event (MouseFlags. Absolute | MouseFlags. Move, x, y, 0, UIntPtr. Zero); mouse_event (MouseFlags. Absolute | MouseFlags. RightDown, x, y, 0, UIntPtr. Zero); mouse_evens (เมาส์) แอบโซลูท | MouseFlags. RightUp, x, y, 0, UIntPtr. Zero);
ขั้นตอนที่ 4
จำลองการคลิกเมาส์โดยการส่งข้อความ WM_LBUTTONDOWN และ WM_LBUTTONUP โดยใช้ฟังก์ชัน Win API SendMessage () ตัวอย่างเช่น ดังที่แสดงด้านล่าง: เป็นโมฆะ OnBtPerformClick (ผู้ส่งอ็อบเจ็กต์, EventArgs e) {SendMessage (btDemo. Handle, Messages. WM_LBUTTONDOWN, MK_LBUTTON, IntPtr. Zero); SendMessage (btDemo. Handle, Messages. WM_LBRTONUP; }