我对 AutoIt 真的很陌生,我的意思是就像今天一样新,我正在 Koda 表单设计器中创建一个 GUI。我想弄清楚如何保存表单中的所有输入部分,这样如果有人再次打开它,它就会保存他们的输入。
干杯
我对 AutoIt 真的很陌生,我的意思是就像今天一样新,我正在 Koda 表单设计器中创建一个 GUI。我想弄清楚如何保存表单中的所有输入部分,这样如果有人再次打开它,它就会保存他们的输入。
干杯
AutoIt 中最简单的文件格式是 ini 文件。您之前可能已经将它们视为程序的配置文件,Windows 曾经将它们用于所有事情。
以下函数很重要:IniRead、IniWrite、GUICtrlRead、GUICtrlSetData。
其他类型的输入略有不同。复选框需要稍微不同的代码,当使用多行编辑控件时,您可以使用一些技巧来绕过 ini 限制。
这是最基本的,这是一个 koda 生成的表单,添加了几行:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $sConfigPath = @ScriptDir & "\MySettings.ini"
#Region ### START Koda GUI section ### Form=
Local $Form1 = GUICreate("Form1", 362, 34, 192, 124)
Local $Input1 = GUICtrlCreateInput("", 8, 8, 346, 20)
#EndRegion ### END Koda GUI section ###
; Here we can execute code before the window is shown
; Get the value of Input1 from the ini file.
GUICtrlSetData($Input1, IniRead($sConfigPath, "inputs", "Input1", ""))
; Show the window afterwards so it looks a bit tidier
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
; Note: Exit needs to be changed to ExitLoop
; for any code after the loop to execute.
ExitLoop
EndSwitch
WEnd
; This code will be executed when the window is closed.
; Writes the value of the $Input1 control to the ini file
IniWrite($sConfigPath, "inputs", "Input1", GUICtrlRead($Input1))
该模式适用于您只想从代码中的单个位置加载和保存的简单表单。当您制作更复杂的 GUI 时,您会想要更改函数输入的加载和保存,这将允许您拥有正常的应用、取消和确定按钮,甚至是重置为默认值的按钮。
最后一点,值得记住的是,基于 stackoverflow 的 AutoIt 用户群非常小。我们的大部分社区都在AutoIt 论坛上。像这样的问题通常会在 10 分钟内得到答案,而这里需要几个小时。