使用脚本/批处理文件在windows中自动单击鼠标

使用脚本/批处理文件在windows中自动单击鼠标,windows,batch-file,console-application,Windows,Batch File,Console Application,首先我想指出,这是一个相当奇怪的问题,而且我甚至不知道stackoverflow是否适合这个问题 不管怎样,有没有一种方法可以编写一个批处理文件或其他脚本,以便在脚本运行时,无论鼠标指针在何处,都可以自动执行鼠标单击?我的主要目标是: 运行脚本 检查时间是否在00:00am和05:00am之间 如果不是,则继续每15分钟运行一次检查 如果是,则检查当前机器上是否有internet连接 如果存在internet连接,则继续每15分钟运行一次脚本检查 如果没有internet连接,则无论鼠标指针当时

首先我想指出,这是一个相当奇怪的问题,而且我甚至不知道stackoverflow是否适合这个问题

不管怎样,有没有一种方法可以编写一个批处理文件或其他脚本,以便在脚本运行时,无论鼠标指针在何处,都可以自动执行鼠标单击?我的主要目标是:

  • 运行脚本
  • 检查时间是否在00:00am和05:00am之间
  • 如果不是,则继续每15分钟运行一次检查
  • 如果是,则检查当前机器上是否有internet连接
  • 如果存在internet连接,则继续每15分钟运行一次脚本检查
  • 如果没有internet连接,则无论鼠标指针当时指向何处,都会自动执行鼠标左键单击
  • 继续运行,每15分钟进行一次上述检查
  • 我也不知道这是否可能,只是想试试运气。
    提前谢谢

    我会用。IMHO,autoit更适合于运行脚本,其中systray图标可能比控制台窗口更可取。AutoIt可以、也可能是。

    以防某个可怜的灵魂有一天偶然发现这一点,使用上面@rojo建议的AutoIt-这是我编写的脚本,可以满足我的需要:

    ; 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
    
    ;启动脚本
    Main()
    Func Main()
    ; 无限循环
    而0<1
    如果CheckTime()==true,则
    如果CheckInternetConnection()==true,则
    ; 互联网连接是真实的
    ; 所以不用担心
    其他的
    ; 互联网连接是错误的
    ; 执行鼠标单击
    鼠标点击(“左”)
    恩迪夫
    恩迪夫
    ; 睡15分钟
    睡眠(60000*15)
    温德
    EndFunc
    ; 该函数检查当前时间是否在00:00和05:00之间
    Func CheckTime()
    如果@Hour>=00和@Hour 0,则
    $Connected=true
    恩迪夫
    返回$Connected
    EndFunc
    
    现在,您只需将代码保存在一个扩展名为.au3的文件中,双击即可享受。

    能够完成一些基本的鼠标操作。 检查-自编C#类(默认情况下,从vista和更高版本的所有工具都安装了C#编译器),能够从命令行命令鼠标(也非常基本,但可以做的比nircmd多一点)。使用
    mouse.bat-help
    可以查看帮助和一些示例操作

    下面是使用示例:

    示例:

    ::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
    

    PS-如果这是一个错误的论坛,不要吝啬。只要告诉我什么是合适的论坛,然后我们就可以关闭这个论坛,把它移过去。谢谢是的,这样的事情是可能的。不,我们不会为你写的。不过,您最好使用Windows PowerShell,因为批处理环境受到了愚蠢的限制。powershell可以访问系统中的几乎所有内容。@MarcB谢谢Marc,我没有要求你为我编写它,我自己非常有能力编写代码,谢谢。在正确的方向上进行简单的推送会很感激,比如提到powershell-我会去看看。我会使用autoit。IMHO,autoit更适合于运行脚本,其中systray图标可能比控制台窗口更可取。@rojo-这看起来很有希望,谢谢!