如何在AutoHotkey中读取多行用户输入?

如何在AutoHotkey中读取多行用户输入?

问题描述:

我有一个AutoHotkey脚本,需要从用户读取多行员工数据。如何在AutoHotkey中读取多行用户输入?

InputBox, userInput, Employee Records, Please enter employee records. (One per line) 

不幸的是,一个InputBox只允许用户输入文本的单行。尝试添加换行符输入将改为提交输入的任何数据。

如何在AutoHotkey脚本中输入多行用户输入?

user input

这实现了一个通用的多输入功能

F3::MsgBox % MultiLineInput("Employee Records", "Please enter employee records (One per line):") 

MultiLineInput(title, prompt) 
{ 
    static input 
    input := "" 
    Gui, Add, Text,, %prompt% 
    Gui, Add, Edit, w400 h60 vinput 
    Gui, Add, Button, gokay_pressed, Okay 
    Gui, Add, Button, cancel X+8 YP+0, Cancel 
    Gui, Show, Center autosize, %title% 
    WinWaitClose %title% 
    return input 

    okay_pressed: 
    Gui Submit 
    Gui Destroy 
    return 

    GuiClose: 
    GuiEscape: 
    ButtonCancel: 
    Gui, Destroy 
    return 
} 
+0

绑定变量需要是静态的或全局的 –

+0

MultiLineInput()返回用户的输入作为字符串,即使已选择取消。 –

+0

你有兴趣把它作为一个图书馆在GitHub上吗?我发现自己经常使用这个功能,并且很想帮助进一步开发它。 –

这说明一个多输入框

F2:: 
    Gui, Add, Text,, Please enter employee records (One per line): 
    Gui, Add, Edit, w600 h60 vinput 
    Gui, Add, Button, gokay_pressed, Okay 
    Gui, Add, Button, cancel X+8 YP+0, Cancel 
    Gui, Show, Center autosize, Employee Records 
    Return 

okay_pressed: 
    Gui Submit 
    Gui Destroy 
    MsgBox %input% 
    Return 

GuiClose: 
GuiEscape: 
ButtonCancel: 
    Gui, Destroy 
    return 

enter image description here