翻译
原文来自Gordon W. Ahn著 Auto Clicker v1.0(原代碼地址)
- Download AutoClicker_binary.zip - 81.3 KB
- Download AutoClicker_Source.zip - 79.6 KB
简介
Auto Clicker是一个可以帮你自动点击鼠标的程序。使用空格键设置X-Y列表,再设置一个点击间歇时间,然后,单击start按钮,接下来就让程序帮你自动顺序点击鼠标吧。如果需要退出自动点击,只需要按ESC键就可以了。自动点击可以很容易地实现重复的点击,不过我不希望你把它用于欺骗网络在线游戏。Auto Clicker是一个免费软件,非常容易使用,且源代码开放。
代码使用
如果你想编译陈程序,你应该了解mouse_event() 函数和钩子机制。可以去查看一下MSDN。
下面的例子显示如何使用mouse_event() 函数:
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo()); // Left Key Down mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, GetMessageExtraInfo()); // Left Key UP mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, GetMessageExtraInfo()); // Right Key Down mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, GetMessageExtraInfo()); // Right Key Up
当你的程序失去焦点,确又想得到键盘的响应,你就需要钩子过程了。在OnInitDialog()函数中,使用SetWindowsHookEx() 函数挂钩。
LRESULT CALLBACK HookMouseProc(int nCode, WPARAM wParam, LPARAM lParam) { HWND hwnd; LRESULT lResult = 0; if(nCode == HC_ACTION) { if(((EVENTMSG*)lParam)->message == VK_ESCAPE) { hwnd= ::FindWindow(NULL, strProgName); ::SendMessage(hwnd,WM_KEY_ESCAPE,1,1); return 1; } else if(((EVENTMSG*)lParam)->message == VK_PAUSE) { hwnd=::FindWindow(NULL, strProgName); ::SendMessage(hwnd,WM_KEY_PAUSE,1,1); return 1; } } return CallNextHookEx( hHook, nCode, wParam, lParam); }
程序的使用
首先,设置X-Y列表。方法是移动鼠标到你要点击的位置,然后按空格键。
当Auto Clicker作运行的时候,按ESC退出自动执行。
暂停键,用来暂停自动点击。
你还可以保存X-Y列表到一个文件中。