65.9K
CodeProject 正在变化。 阅读更多。
Home

自动点击器 v1.0

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.44/5 (11投票s)

2007年7月26日

CPOL

2分钟阅读

viewsIcon

208927

downloadIcon

11709

一个自动点击鼠标的程序。

Screenshot - Auto_Clicker.jpg

引言

自动点击器 是一个自动点击鼠标的程序。它可以让鼠标在不需要用户手指酸痛的情况下点击。只需使用键盘上的 <SPACE> 键设置 X-Y 列表,设置点击间隔,点击 <开始> 按钮,然后就可以离开鼠标和键盘,让它自动点击鼠标。为了获得更快的自动点击速度,请尝试将点击间隔设置为一个较低的数字(毫秒)。要停止 自动点击器,只需按下键盘上的 <ESC> 键。自动点击器 可用于使重复点击更容易,但不应用于在在线游戏中作弊。自动点击器 是一个免费软件,易于使用,直观的程序,并且程序的源代码是开放的。

Using the Code

要构建此程序,您应该了解 mouse_event() 函数和钩子机制。从 MSDN,您可以了解更多关于 mouse_event() 函数如何合成鼠标移动和按钮点击的信息。

这些是此程序中使用 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(),并且 SetWindowsHookExHookProc 使用如下

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 列表框。只需在按键盘上的 <SPACE> 键的同时移动鼠标。当自动点击器工作时,如果想停止它,只需按键盘上的 <ESC> 键。如果按下键盘上的 [PAUSE] 键,您可以暂停自动点击器。您可以将 X-Y 列表保存到文件中,稍后使用 <保存> 和 <加载> 按钮从文件中加载它。

关注点

有人知道如何在不使用钩子机制的情况下构建这个程序吗?

历史

这是我为 http://www.softahead.com 撰写的第一篇文章。我的最新文章可在 这里 找到。

© . All rights reserved.