Je souhaiterai accéder à la listview généré à partir d'information récupéré sur le bouton mais celle ci reste inaccessible. J'ai navigué sur plusieurs sujets mais n'arrive pas à comprendre et à trouver une solution .
Le $IdBtn[$i] renvoi l'information qui correspond au nom de la machine local ou distante.
Le __ViewEvent prend en paramètre les identifiants des logs qui m'intéressent.
Le listview est accessible quand il est placé avant le GUISetState(@SW_SHOW) du code principal mais à croire que le fait d'appeler la fonction dans la boucle while empêche l'intégration de la listview dans le GUI principal.
Quelqu'un peut il m'aider ?
Merci.
Code : Tout sélectionner
While 1
Local $eMSG = GUIGetMsg()
For $i = 1 To UBound($IdBtn)-1
If $eMSG = $IdBtn[$i] Then
Dim $IdList = __ID_Event(GUICtrlRead($IdBtn[$i]))
__ViewEvent($oWINDOW,GUICtrlRead($IdBtn[$i]),$IdList)
EndIf
Next
Switch $eMSG
Case $GUI_EVENT_CLOSE
Exit
Case $oCLOSE
Exit
EndSwitch
WEnd
Code : Tout sélectionner
Func __ViewEvent($GUI,$servername,$ID)
Local $aEvt
Local $hListView = GUICtrlCreateListView("", 190, 60, 700, 300)
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
GUICtrlSetBkColor($hListView, 0x00ff00)
; Add columns
_GUICtrlListView_InsertColumn($hListView, 0, "Record number", 700/2)
_GUICtrlListView_InsertColumn($hListView, 1, "Type", 700/2)
_GUICtrlListView_InsertColumn($hListView, 2, "Source", 700/2)
$row = 0
For $i = 1 To $ID[0]-1
;$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$wbemFlagReturnWhenComplete = 0x0
$colItems = ""
$strComputer = $servername
$objWMIService = ObjGet("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& $strComputer & "\root\cimv2")
$colItems = $objWMIService.ExecQuery("Select RecordNumber , Type , SourceName from Win32_NTLogEvent " _
& "where Logfile = 'Application' " _
& "AND RecordNumber = " & $ID[$i] , _
"WQL", _
$wbemFlagReturnWhenComplete + $wbemFlagForwardOnly)
If IsObj($colItems) then
For $objItem In $colItems
; Add items
_GUICtrlListView_AddItem($hListView, $objItem.RecordNumber, $row) ;=== "Row 1: Col 1"
_GUICtrlListView_AddSubItem($hListView, $row, $objItem.Type, 1) ;=== "Row 1: Col 2"
_GUICtrlListView_AddSubItem($hListView, $row,$objItem.SourceName, 2) ;=== "Row 1: Col 3""Row 1: Col 3"
Next
EndIf
$row += 1
_GUICtrlListView_HideColumn($hListView, 0)
Next
GUISetState(@SW_SHOW)
EndFunc