如何在AutoHotkey中读取多行用户输入?
问题描述:
我有一个AutoHotkey脚本,需要从用户读取多行员工数据。如何在AutoHotkey中读取多行用户输入?
InputBox, userInput, Employee Records, Please enter employee records. (One per line)
不幸的是,一个InputBox只允许用户输入文本的单行。尝试添加换行符输入将改为提交输入的任何数据。
如何在AutoHotkey脚本中输入多行用户输入?
答
这实现了一个通用的多输入功能
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
}
答
这说明一个多输入框
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
绑定变量需要是静态的或全局的 –
MultiLineInput()返回用户的输入作为字符串,即使已选择取消。 –
你有兴趣把它作为一个图书馆在GitHub上吗?我发现自己经常使用这个功能,并且很想帮助进一步开发它。 –