Reputation:
Firstly I'd like to point out that this is a rather strange question and also that I don't even know if stackoverflow is right for this...
Anyways, is there a way to write a batch file or some other script that will automate a mouse click wherever the mouse pointer happens to be at the time the script runs? My main goal is this:
Again I don't know even if this is possible, just thought I'd try my luck. Thanks in advance!
Upvotes: 19
Views: 151035
Reputation: 57262
nircmd is capable to do some basic mouse stuff.
Check mouse.bat - self-compiled C# class (c# compiler is installed by default from everything from vista and above) capable to command the mouse from command line (also pretty basic but can do a little bit more than nircmd). with mouse.bat -help
you can see the help and some example actions.
here's example usage:
Examples:
::clicks at the current position
call mouse click
::double clicks at the current position
call mouse doubleClick
::right clicks at the current position
call mouse rightClick
::returns the position of the cursor
call mouse position
::scrolls up the mouse wheel with 1500 units
call mouse scrollUp 150
::scrolls down with 100 postitions
call mouse scrollDown 100
::relatively(from the current position) moves the mouse with 100 horizontal and 100 vertial postitions
call mouse moveBy 100x100
::absolute positioning
call mouse moveTo 100x100
::relative drag (lefclick and move)
call mouse dragBy 300x200
::absolute drag
call mouse dragTo 500x500
Upvotes: 7
Reputation:
Just in case some poor soul stumbles upon this one day, using AutoIt that @rojo suggested above - This is the script that I wrote that accomplishes what I need:
; Initiate Script
Main()
Func Main()
; Infinite loop
While 0 < 1
If CheckTime() == true Then
If CheckInternetConnection() == true Then
; Internet Connection is true
; So no worries
Else
; Internet Connection is false
; Perform mouse click
MouseClick("left")
EndIf
EndIf
; Sleep for 15 minutes
Sleep(60000 * 15)
WEnd
EndFunc
; The function checks if the current time is between 00:00 and 05:00
Func CheckTime()
If @Hour >= 00 AND @Hour <= 05 Then
Return true
Else
Return false
EndIf
EndFunc
; The function checks if currently is a internet connection
Func CheckInternetConnection()
Local $Connected = false
$ping = Ping("www.google.com")
If $ping > 0 Then
$Connected = true
EndIf
Return $Connected
EndFunc
And there you go, just save the code in a file with a .au3 file extention, double click and enjoy.
Upvotes: 20
Reputation: 24466
I'd use AutoIt. IMHO, autoit is more appropriate for running scripts where a systray icon might be preferable to a console window. AutoIt can check the time, ping something, automate a mouse click, and probably whatever else you need.
Upvotes: 15