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

3

我有一个AutoHotkey脚本,需要从用户那里读取多行员工数据。

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

很遗憾,InputBox 只允许用户输入一行文本。使用 Enter 键添加新行将提交已输入的任何数据。

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

user input

2个回答

2

这展示了一个多行输入框

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


2

这实现了一个通用的多行输入函数

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
}

绑定变量需要是静态或全局的。 - Jim U
MultiLineInput()函数返回用户的输入字符串,即使已选择取消。 - Stevoisiak
你有兴趣将这个作为一个库托管在GitHub上吗?我发现自己经常使用这个函数,很愿意帮助进一步开发它。 - Stevoisiak
1
请随意使用、修改和发布代码,无论何时何地。感谢您的询问。 - Jim U

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接