I'd used AutoHotKey to come with with the small program below.
What it does is to wigggle the mouse after a certain delay, to sttart wiggle the mouse.
How is it useful? With displays becoming bigger, sometimes it is easy for the mouse to get lost. With the script running, you will be able to locate the mouse cursor more easily.
To top it off, you will be doing it with your peripheral vision, those vision rods receptors in your eyes that is so much better than detecting movments than the cones. So we are actually leveraging on our born ability to do ti.
You might need to replace the greater than and less than signs below if you are planning to use it.
Btw, running this application will have the side effect of preventing the screensaver from kicking in. So this is something you might want to consider.
WigglyMouse.ahk
#persistent coordmode, mouse, screen count := 0 mousegetpos, sx, sy settimer, check, 250 return check: mousegetpos, cx, cy ; mouse has moved, calculate by how much count := count + 1 ;ToolTip, count is %count% if ( count > 100 ){ ;msgbox, mouse has moved less than 20 pixels if ( ((cx < (sx+20) and cx > (sx-20)) and (cy < (sy+20) and cy > (sy-20)))) { random, x, 1, 18 random, y, 1, 18 x := sx+x -9 y := sy+y -9 mousemove, %x%, %y%, 80 }else { count := 0 mousegetpos, sx, sy ; get new mouse position } } return
updated.
for fun sake, I'd updated the script to draw lines on the screen. take a look.
#persistent coordmode, mouse, screen count := 0 unit := 40 OnExit, ExitSub pToken := Gdip_Startup() Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs Gui, 1: Show, NA hGui1 := WinExist() hbm := CreateDIBSection(A_ScreenWidth, A_ScreenHeight), hdc := CreateCompatibleDC(), obm := SelectObject(hdc, hbm) G := Gdip_GraphicsFromHDC(hdc), Gdip_SetSmoothingMode(G, 4) pPen := Gdip_CreatePen(0xff0000ff, 2) mousegetpos, sx, sy cx1 := sx cy1 := sy settimer, check, 200 return check: mousegetpos, zx, zy if (( zx != sx and zx != cx ) or ( zy != sy and zy != cy )){ count := 0 Gdip_GraphicsClear(G) ; not needed on first press, but never mind UpdateLayeredWindow(hGui1, hdc, 0, 0, A_ScreenWidth, A_ScreenHeight) } cx := zx cy := zy ; mouse has moved, calculate by how much count := count + 1 ;ToolTip, count is %count% if ( count > 50 ){ ;msgbox, mouse has moved less than unit pixels if ( ((cx < (sx+unit) and cx > (sx-unit)) and (cy < (sy+unit) and cy > (sy-unit)))) { random, x, 1, (unit-2) random, y, 1, (unit-2) cx := sx+x -((unit -2)/2) cy := sy+y -((unit -2)/2) mousemove, %cx%, %cy%, 5 Gdip_DrawLine(G, pPen, cx, cy, cx1, cy1) UpdateLayeredWindow(hGui1, hdc, 0, 0, A_ScreenWidth, A_ScreenHeight) cx1 := cx cy1 := cy }else { count := 0 Gdip_GraphicsClear(G) ; not needed on first press, but never mind UpdateLayeredWindow(hGui1, hdc, 0, 0, A_ScreenWidth, A_ScreenHeight) mousegetpos, sx, sy ; get new mouse position } } return ExitSub: Gdip_DeletePen(pPen) SelectObject(hdc, obm), DeleteObject(hbm), DeleteDC(hdc), Gdip_DeleteGraphics(G) Gdip_Shutdown(pToken) ExitApp #Include Gdip.ahk ; by Tic http://www.autohotkey.com/forum/topic32238.html