บทความนี้จะเป็นบทความเกี่ยวกับการใช้คำสั่งแบบง่ายๆ Batch Script + PowerShell Script เพื่อสั่งให้ Windows Auto Click ตำแหน่งเม้าส์ปัจจุบันสำหรับผู้ที่มีความจำเป็นต้องใช้งาน Auto Click จุดๆเดียว โดยบทความนี้จะให้คุณสร้างไฟล์และรันเองเหมือนแบบง่ายๆ ไม่ต้องพึ่งโปรแกรม ให้มั่นใจว่าไม่มีสิ่งแปลกปลอมหากไม่สะบายใจในการใช้งาน Auto Click จากที่อื่นโดยมีขั้นตอนการทำดังต่อไปนี้
สร้างไฟล์ 3 ไฟล์ได้แก่
- ไฟล์ที่ 1 ใส่โค้ดด้านล่างลงไปและตั้งชื่อว่า start.bat
@echo off powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0clicker.ps1" pauseหากรันไม่ได้: อาจเกิดจาก ข้อจำกัดของ Execution Policy หรือ สิทธิ์ของ PowerShell บนเครื่องของคุณ ลองใช้คำสั่งด้านล่างแทน
@echo off powershell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-ExecutionPolicy Bypass -Scope Process; Start-Process powershell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File \"%~dp0clicker.ps1\"' -Verb RunAs}" pause - ไฟล์ที่ 2 ใส่โค้ดด้านล่างลงไปและตั้งชื่อว่า clicker.ps1
Add-Type -TypeDefinition @" using System; using System.Runtime.InteropServices; public class Mouse { [DllImport("user32.dll")] public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo); public const int MOUSEEVENTF_LEFTDOWN = 0x02; public const int MOUSEEVENTF_LEFTUP = 0x04; } public class Keyboard { [DllImport("user32.dll")] public static extern short GetAsyncKeyState(int vKey); } "@ -PassThru # 🔹 ตั้งค่าคีย์ลัด $global:running = $false $hotkey = 0x76 # Virtual Key Code ของ F7 (VK_F7) $exitKey = 0x1B # Virtual Key Code ของ ESC # 🔹 โหลดค่าหน่วงเวลาจากไฟล์ `config.txt` $configFile = "$PSScriptRoot\config.txt" if (Test-Path $configFile) { $delay = Get-Content $configFile | Out-String $delay = [int]$delay.Trim() # แปลงเป็นตัวเลข } else { $delay = 500 # ค่าเริ่มต้น 500ms ถ้าไม่มีไฟล์ Set-Content -Path $configFile -Value $delay # สร้างไฟล์ใหม่ } Write-Host "[INFO] กด F7 เพื่อเริ่ม/หยุด Auto Clicker" -ForegroundColor Yellow Write-Host "[INFO] ใช้เวลาหน่วงระหว่างคลิก: $delay ms (แก้ไขได้ใน config.txt)" -ForegroundColor Cyan Write-Host "[INFO] กด ESC เพื่อปิดโปรแกรม" -ForegroundColor Red # 🔹 เริ่ม Loop ฟังปุ่ม และคลิก while ($true) { # ตรวจจับ F7 if ([Keyboard]::GetAsyncKeyState($hotkey) -lt 0) { $global:running = -not $global:running Write-Host "`n[INFO] Auto Clicker: " -NoNewline if ($global:running) { Write-Host "เริ่มทำงาน" -ForegroundColor Green } else { Write-Host "หยุดทำงาน" -ForegroundColor Red } Start-Sleep -Milliseconds 500 # ป้องกันการอ่านปุ่มซ้ำ } # ตรวจจับ ESC เพื่อออก if ([Keyboard]::GetAsyncKeyState($exitKey) -lt 0) { Write-Host "`n[INFO] Auto Clicker ปิดแล้ว" -ForegroundColor Red exit } # ถ้าอยู่ในโหมดทำงาน ให้คลิกอัตโนมัติ if ($global:running) { [Mouse]::mouse_event([Mouse]::MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) Start-Sleep -Milliseconds 10 [Mouse]::mouse_event([Mouse]::MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) Start-Sleep -Milliseconds $delay # ใช้ค่าหน่วงจาก config.txt } } - ให้กำหนดตัวเลขลงไปในไฟล์ แล้วตั้งชื่อว่าไฟล์ว่า config.txt (สามารถแก้ไขไฟล์นี้เพื่อปรับความเร็วคลิก หน่วยเป็นมิลลิวินาที)
100
หมายเหตุการบันทึกไฟล์ clicker.ps1 ให้เลือกบันทึกแบบ
- Save as type เป็น All file (*.*)
- ตรง Encoding ให้เลือก UTF-8 with BOM หากเครื่องคุณใช้รูปแบบแสดงภาษาเป็นไทย แต่หากรันแล้วมี Error ให้เปลี่ยนเป็น UTF-8 ธรรมดาแทน
- ไฟล์ start อาจต้องบันทึกเป็นแบบ UFT-8 หา run แล้วมีข้อความ error บางอย่าง
วิธีใช้งาน
- สร้าง 3 ไฟล์ →
clicker.ps1,config.txt,start_clicker.bat - ดับเบิลคลิก
start.batเพื่อเปิดโปรแกรม - กด
F7เพื่อเริ่ม/หยุด Auto Click - แก้ไข
config.txtเพื่อตั้งค่าเวลาหน่วง - กด
ESCเพื่อปิดโปรแกรม
การแก้ไขคีย์ลัด
- ให้แก้ไขที่ไฟล์
clicker.ps1 - แก้ตรง $hotkey = 0x76 # F7
- ส่วนคำพูดอื่นๆที่เป็น F7 ให้เปลี่ยนเป็น คีย์ที่เราต้องการ
0x76 คือ Virtual Key Code ของปุ่ม F7 ในระบบ Windows ถ้าต้องการเปลี่ยนเป็น F อื่นๆให้ใส่ตามนี้
ตาราง Virtual Key Code สำหรับปุ่มฟังก์ชัน (F1 – F12)
| ปุ่ม | Virtual Key Code |
|---|---|
| F1 | 0x70 |
| F2 | 0x71 |
| F3 | 0x72 |
| F4 | 0x73 |
| F5 | 0x74 |
| F6 | 0x75 |
| F7 | 0x76 |
| F8 | 0x77 |
| F9 | 0x78 |
| F10 | 0x79 |
| F11 | 0x7A |
| F12 | 0x7B |
หากไม่เข้าใจรูปแบบการสร้างไฟล์ให้ชมคลิปวิดีโอด้านล่างนี้