Guten Morgen zusammen,
ich habe mal wieder ein kleines Problem. Ich schreibe einen Wert einer ComboBox in eine ini Datei. Beim neustart des Programms, soll die ini eingelesen und der Wert in der Combo ausgewählt werden. Leider bekomme ich das nicht hin. Hier ein Textaufbau zum besseren verständnis.
AutoIt
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <String.au3>
$iniPath = @ScriptDir & "\config.ini"
$section = "Hardware"
$key = "CPU"
$default1 = "512"
GUICreate("Example ComboBox", 400, 300)
$hComboBox = GUICtrlCreateCombo("", 10, 10, 180, 20, $CBS_DROPDOWNLIST)
GUICtrlSetData($hComboBox, "512|1024|2048|4096|6144")
$sValue = IniRead($iniPath, $section, $key, $default1)
_pc($sValue)
$iIndex = _ComboBox_FindStringExact($hComboBox, $sValue)
_pc($iIndex)
If $iIndex = -1 Then $iIndex = _ComboBox_FindStringExact($hComboBox, "512")
;GUICtrlSetData($hComboBox, GUICtrlRead(GUICtrlSendMsg($hComboBox, $CB_GETLBTEXT, $iIndex, "")))
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _ComboBox_FindStringExact($hCombo, $sString)
Local $iCount = GUICtrlSendMsg($hCombo, $CB_GETCOUNT, 0, 0)
Local $sBuffer, $iResult, $sText
For $i = 0 To $iCount - 1
$sBuffer = DllStructCreate("char[260]")
$iResult = GUICtrlSendMsg($hCombo, $CB_GETLBTEXT, $i, DllStructGetPtr($sBuffer))
If $iResult <> -1 Then
$sText = DllStructGetData($sBuffer, 1)
If $sText = $sString Then
Return $i
EndIf
EndIf
Next
Return -1
EndFunc
Func _PC($sStr, $iVor = Default, $iNach = Default)
If $iVor = Default Then $iVor = 1
If $iNach = Default Then $iNach = 1
ConsoleWrite(_StringRepeat(@CRLF, $iVor) & $sStr & _StringRepeat(@CRLF, $iNach+1))
Return True
EndFunc
Alles anzeigen
INI-Datei:
Gruß, OhnePlan