C++ Builder

La Isla Bonita



Mouse Simulation
Mouse Simulation


Description

This article shows how to simulate Mouse clicks by using a function called MouseClick() which encapsulates the MouseEvent() function which, in turn, encapsulates the Win32 API mouse_event() function.

MouseClick Return value

On success MouseClicks returns true, on failure it returns false. Failure means that an illegal value of LMR (Left-Middle-Right) was passed on the this function.

Split.cpp

enum MouseButton
{
    MOUSE_LEFT_BUTTON,
    MOUSE_MIDDLE_BUTTON,
    MOUSE_RIGHT_BUTTON
};

void MouseEvent( DWORD dwFlags, DWORD dx, DWORD dy )
{
  //-------------------------------------------------------------
  //We will use this function when
  //dwData,	// amount of wheel movement, and
  //dwExtraInfo 	// 32 bits of application-defined information
  // are not required
  //-------------------------------------------------------------
    mouse_event( dwFlags, dx, dy, 0, 0 );
}

bool MouseClick( int LMR, DWORD dx, DWORD dy )
{
   switch( LMR )
   {
       case MOUSE_LEFT_BUTTON :
            MouseEvent( MOUSEEVENTF_LEFTDOWN,   dx, dy );
            MouseEvent( MOUSEEVENTF_LEFTUP,     dx, dy );
            return true;

       case MOUSE_RIGHT_BUTTON :
            MouseEvent( MOUSEEVENTF_RIGHTDOWN,  dx, dy );
            MouseEvent( MOUSEEVENTF_RIGHTUP,    dx, dy );
            return true;

       case MOUSE_MIDDLE_BUTTON :
            MouseEvent( MOUSEEVENTF_MIDDLEDOWN, dx, dy );
            MouseEvent( MOUSEEVENTF_MIDDLEUP,   dx, dy );
            return true;

       default: return false;
   }
}

Usage

  SetCursorPos( X, Y );
  MouseClick( MOUSE_RIGHT_BUTTON, 0, 0 );

Homepage

Copyright © 1997-2002 Rodolfo A. Frino. All rights reserved.