简体   繁体   English

自动热键动态循环

[英]Autohotkey dynamic Loop

I'm writing a small script with autohotkey. 我正在用autohotkey编写一个小脚本。

  1. Opens App 2. Type in Login & Pass 3. Login 4. Do some Clicking. 打开应用程序2.键入登录名和密码3.登录。4.单击一下。

I had some trouble of sending text to the application, only way it worked was "send {A}" which is like clicking a keyboard button. 我在向应用程序发送文本时遇到了一些麻烦,唯一可行的方法是“发送{A}”,就像单击键盘按钮一样。

I would like to create a loop around this steps and change Login each time. 我想围绕此步骤创建一个循环,并每次更改登录名。 Standard procedure would be to have a text file a read from it but i don't know how i could do this with my send. 标准程序是从中读取文本文件,但我不知道如何通过发送来执行此操作。 Worst case would be to type a function for every login. 最糟糕的情况是每次登录都要键入一个函数。

So is there a smart way to dynamically change the type on each loop interval? 那么,有没有一种聪明的方法可以动态更改每个循环间隔的类型? For example in the idea, i don't know how i can build the loop which changes the function each time, so on loop 1 = fn_login , login 2 = fn_login1 ... 例如,在这个想法中,我不知道如何构建每次更改功能的循环,因此在循环1 = fn_login,登录2 = fn_login1 ...

    Loop
    {
        FN_OpenApp()
        FN_Login()
    }
ExitApp
    ===================================

    FN_OpenApp()
    {
        Click, 100, 100
    }

    FN_Login()
    {
        Click, 100, 100
        Send {U}
        Send {S}
        Send {E}
        Send {R}

        Click, 111, 111
        Send {P}
        Send {A}
        Send {S}
        Send {S}
    }


    ;idea__________________________________________


    Loop
    {
        FN_OpenApp()
        FN_LoginLoop()
    }

ExitApp    

    FN_OpenApp()
    {
        Click, 100, 100
    }

    FN_Login01()
    {
        Click, 100, 100
        Send {U}
        Send {S}
        Send {E}
        Send {R}

        Click, 111, 111
        Send {P}
        Send {A}
        Send {S}
        Send {S}
    }


    FN_Login02()
    {
        Click, 100, 100
        Send {U}
        Send {S}
        Send {E}
        Send {R}

        Click, 111, 111
        Send {P}
        Send {A}
        Send {S}
        Send {S}
    }

FN_LoginLoop()
{
 login := Object (FN_Login01(), FN_Login02())
 for ....
}

Does this help? 这有帮助吗?

; Press F2 to run program
F2:: main()

main()
{
  credentials := [["user001","pass001"], ["user002","pass002"]]

  for i,cred in credentials
  {
    user     := cred[1]
    password := cred[2]
    FN_Login( user, password )
  }
}


FN_Login( user, password )
{
  MsgBox DEBUG: FN_Login(%user%`,%password%)

  click 100,100
  Send %user%
  click 111,111
  Send %password%
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM