To give you a start.
Install AutoIT

I made this myself in like 2 hours:
#include <MsgBoxConstants.au3>
#include <AutoItConstants.au3>
#include <Timers.au3>
#include <Math.au3>
; Press Esc to terminate script
Global $g_bPaused = False
Global $sleeptime = 100
Global $Size = 300
global $hTimer = TimerInit() ; Begin the timer and store the handle in a variable.
global $xCircle = @DesktopWidth/2 ; middlepoint
global $yCircle = @DesktopHeight/2 ;middlepoint
global $R = 360
global $Stp = 3
global $Circle = 0
HotKeySet("{ESC}", "Terminate")
HotKeySet("z", "ShowMessage") ; autolock
HotKeySet("b", "IncreaseSleep") ; bigger circle
HotKeySet("n", "DecreaseSleep") ; smaller circle
HotKeySet("m", "StartCircle") ; start circle movement
While 1
Sleep(10)
Local $fDiff = TimerDiff($hTimer)
if $fDiff > $sleeptime and $Circle > 0 Then
$hTimer = TimerInit()
Call("Circle")
EndIf
WEnd
Func Terminate()
Exit
EndFunc
Func ShowMessage()
Local $aCoord = PixelSearch(0, 0, 1024, 780, 0xcc0000)
If Not @error Then
; Find a pure red pixel in the range 0,0-20,300
Local $aPos = MouseGetPos()
MouseMove($aCoord[0]+40, $aCoord[1]-40,0)
MouseClick($MOUSE_CLICK_LEFT)
MouseMove($aPos[0], $aPos[1],0)
sleep(100)
send("{LCTRL}")
EndIf
EndFunc ;==>ShowMessage
Func IncreaseSleep()
$sleeptime = $sleeptime + 25
EndFunc
Func DecreaseSleep()
$sleeptime = $sleeptime - 25
EndFunc
Func Circle()
Local $aPos = MouseGetPos()
$R = $R - $Stp
$Rad = _Radian ($R)
$xm = Sin($Rad)*$Size + $xCircle
$ym= Cos($Rad)*$Size + $yCircle
MouseMove($xm,$ym,0)
MouseClick($MOUSE_CLICK_LEFT)
MouseMove($aPos[0], $aPos[1],0)
EndFunc
Func StartCircle()
if $Circle > 0 Then
$Circle = 0
Else
$Circle = 1
EndIf
EndFunc
Just some autocircle and autolock
Koen