Thank you guys.
As you can see I am quite new to this and this is my 2nd day learning Autoit so I am not familiar with all the functions available. Haven't done any programming in 15 years.
and thanks to @pixelsearch. I shall try and report back.
However, I play around and get it to work in a dirty way by comparing the string in the Array and the text from the list, not really efficient though. and here's the code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=J:\Autoit Projects\test.kxf
$TEST = GUICreate("TEST", 275, 310, -1, -1)
$Exit = GUICtrlCreateButton("Exit", 77, 240, 105, 33)
GUICtrlSetFont(-1, 9, 800, 0, "Arial Narrow")
$listEdition = GUICtrlCreateList("", 40, 48, 193, 160, BitOR($LBS_NOTIFY,$LBS_EXTENDEDSEL,$WS_VSCROLL))
$LEdit = GUICtrlCreateLabel("Windows 10 Edition", 40, 24, 119, 20)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
GUICtrlSetColor(-1, 0x000080)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;================================ Start =======================================
#include <Array.au3>
#include <File.au3>
#include <StringConstants.au3>
#include <MsgBoxConstants.au3>
#include <GuiListView.au3>
; Run(@ComSpec & ' /c dism /Get-WimInfo /WimFile:J:\BatchFiles\install.esd | find /i "Description" > ~A~_edition.txt', "",@SW_HIDE)
;================================================================
; Count no. of lines from text file to allocate Array size
Global $editionCount = _FileCountLines ( "~A~_edition.txt" )
;================================================================
Global $editionArray[$editionCount]
local $lines
;================================================================
_FileReadToArray("~A~_edition.txt", $editionArray) ; and the rest is each line from text file
for $i=0 to UBound($editionArray) -1
$editionArray[$i] = StringStripWS ( $editionArray[$i], $STR_STRIPLEADING + $STR_STRIPTRAILING)
Next
$Lines = _ArrayToString($editionArray, "|", 1,Ubound($editionArray)-1, @CRLF)
$Lines = StringReplace($Lines, "Description : ", "",0)
;ConsoleWrite($Lines & @CR)
GuiCtrlSetData($ListEdition, $Lines)
$editionArray = StringSplit($Lines,"|",$STR_CHRSPLIT)
$editionCount = Ubound($editionArray)
;_ArrayDisplay($editionArray, "Edition " & $editionCount)
;===============================================================================
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $listEdition ; handle of the list
local $index=0
$item=GUICtrlRead($listEdition) ; This will return the text in the list
for $i=0 to Ubound($editionArray) - 1
if StringCompare($item, $editionArray[$i]) = 0 Then
$index = $i
ExitLoop
endif
Next
ConsoleWrite( "Edition Selected: " & $Item & " Index: " & $index &@CR)
#cs
; ============== The loop below always fails ==================
; Meaning _GUICtrlListView_GetItemSelected($listEdition, $i) always return FALSE. WHY ???????
For $i = 0 To $editionArray[0] - 1 ; The content of the list in an array where editionArray[0] contains total count of items
If _GUICtrlListView_GetItemSelected($listEdition, $i) Then
$index = $i
exitloop
EndIf
Next
;===================================================
#ce
Case $exit
exit
EndSwitch
WEnd
The content of the txt file getting from windows command, I commented out on top since I don't know if you have the Windows Installation media.:
Description : Windows 10 Home
Description : Windows 10 Home N
Description : Windows 10 Home Single Language
Description : Windows 10 Education
Description : Windows 10 Education N
Description : Windows 10 Pro
Description : Windows 10 Pro N