Click here to Skip to main content
Click here to Skip to main content
Go to top

Auto Clicker v1.0

, 9 Aug 2007
Rate this:
Please Sign up or sign in to vote.
A program that clicks your mouse automatically.

Screenshot - Auto_Clicker.jpg

Introduction

Auto Clicker is a program that clicks your mouse automatically. It allows the mouse to click without giving the user sore fingers. Just set the X-Y List using <SPACE> on your keyboard, set the click-interval, click the <start> button, and away from mouse and keyboard, it goes clicking the mouse automatically. For getting a faster auto-click speed, try setting the click interval to a lower number (milliseconds). To stop Auto Clicker, just press <ESC> on the keyboard. Auto Clicker can be used to make repetitive clicking easy, but should not be used to cheat in online-games. Auto Clicker is a freeware, easy to use, intuitive program, and the program source is open.

Using the Code

To build this program, you should know the mouse_event() function and hooking mechanism. From MSDN, you can know more about how the mouse_event() function synthesizes mouse motion and button clicks.

These are examples of using mouse_event() in this program:

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

To get keyboard messages when the application loses focus, you need hooking procedures.

In OnInitDialog(), SetWindowsHookEx() is used, and HookProc of SetWindowsHookEx is used as follows:

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);
}

How to Use

First of all, you should fill the X-Y List box with the mouse points on the screen. Just move your mouse while pressing the <SPACE> key on the keyboard. While the Auto Clicker is working, if you want to stop it, just press the <ESC> key on the keyboard. If the [PAUSE] key on the keyboard is pressed, you can pause Auto Clicker. You can save the X-Y List to a file and later load it from the file using the <save> and <load> buttons.

Points of Interest

Does anybody know how to build this program without using the hooking mechanism?

History

This is my first article while I working for http://www.softahead.com. My latest article is available here.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Gordon W. Ahn
Web Developer
Korea (Republic Of) Korea (Republic Of)
I works at http://www.Softahead.com , This site provides Free Software Downloads and Pay-Per-Install Service .


Can you exchange website link with us?
You can submit yours to our resource page here

Comments and Discussions

 
QuestionCan you upload it again? PinmemberMember 824288021-Sep-11 22:24 
GeneralNew feature request Pinmemberjadothebest12-Feb-09 4:17 
QuestionSave and load? V1.1? Pinmemberthejerm12-Feb-08 5:09 
AnswerRe: Save and load? V1.1? Pinmember[deco]7-Apr-08 8:53 
AnswerAnother version 1.5 Pinmember[deco]7-Apr-08 8:57 
GeneralRe: Another version 1.5 Pinmemberthejerm8-Apr-08 20:25 
GeneralRe: Another version 1.5 Pinmember[deco]10-Apr-08 0:41 
GeneralRe: Another version 1.5 Pinmemberthejerm10-Apr-08 1:02 
GeneralRe: Another version 1.5 Pinmember[deco]10-Apr-08 1:47 
GeneralRe: Another version 1.5 Pinmemberthejerm10-Apr-08 3:10 
GeneralRe: Another version 1.5 Pinmembervitttt1117-Jan-09 22:10 
GeneralA similar app has been around for years Pinmembervalex12327-Jul-07 13:04 
GeneralRe: A similar app has been around for years PinmemberGordon W. Ahn27-Jul-07 21:10 
Questionwhat about... Pinmvptoxcct26-Jul-07 3:18 
AnswerRe: what about... PinmemberGorden26-Jul-07 18:01 
AnswerRe: what about... PinmemberCetin Yilmaz9-Aug-07 19:41 
Generalwhat if... Pinmvptoxcct9-Aug-07 21:18 
AnswerRe: what about... PinmemberGordon W. Ahn10-Aug-07 21:57 
GeneralRe: what about... PinmemberHerbyDa11-Aug-07 5:08 
GeneralRe: what about... PinmemberHerbyDa14-Aug-07 2:35 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.140916.1 | Last Updated 10 Aug 2007
Article Copyright 2007 by Gordon W. Ahn
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid