Page 1 sur 1

[R] ListView Non accessible

Posté : ven. 30 mars 2012 16:57
par sandosen
Bonjour,
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

Re: [..] ListView Non accessible

Posté : ven. 30 mars 2012 17:05
par Tlem
Pourquoi une écriture en rouge ???
C'est pas dans nos règles ça !!!

Merci de corriger. :mrgreen:

Re: [..] ListView Non accessible

Posté : ven. 30 mars 2012 17:09
par blacksoul305
Salut,

alors, je vais te proposer un truc, je ne sais pas si cela va marcher. D'après les fichiers joints, tu utilises des fichiers images pour construire ta GUI j'me trompe ?
Commentaire: Contient les images pour afficher le GUI
Donc, tu devrais essayer ça :

Code : Tout sélectionner

$myPic = GuiCtrlCreatePic(...) ; on créé l'image
GUICtrlSetState($myPic,$GUI_DISABLE) ; on désactive l'image (elle reste visible, sinon ça servirait à rien)
Normalement, tout les éléments de la GUI devrait ne pas bloqué, pas mal de personnes ont eu ce problème avec les boutons notamment.

A plus !

PS : Gaffe, la coloration syntaxique n'est pas autorisée, si on l'utilise c'est pour souligner quelque chose d'important ou alors pour faciliter la lecture d'un code (mais pas obligatoire).

EDIT : Oubli des balises code et correction de celui-ci.

Re: [..] ListView Non accessible

Posté : ven. 30 mars 2012 17:35
par sandosen
Ok, pour la couleur des textes , modification éffectuée.
-> blacksoul305
J'ai désactivé tout les images mais sans pas de changement.

Re: [..] ListView Non accessible

Posté : ven. 30 mars 2012 22:23
par mikell
Fatalement, ça venait d'un controle susceptible de désactiver la listview
Donc pour éviter ce genre d'emmerdements, comme l'a dit blacksoul, tu assures en faisant :

Code : Tout sélectionner

    GUICtrlCreateGraphic(170, 30, $iWINDOW_WIDTH - 180, $iWINDOW_HEIGHT - 40) ; THIS CONTROL NEEDS TO BE LAST DUE TO OVERLAY ISSUES
    GUICtrlSetColor(-1, 0x686A65)
[color=#008000]GuiCtrlSetState(-1, $GUI_DISABLE)[/color]
et (éventuellement)

Code : Tout sélectionner

    Local $hListView = GUICtrlCreateListView("", 190, 60, 700, 300)
[color=#008000]GuiCtrlSetState(-1, $GUI_ONTOP)[/color]
8)

J'aime les listviews... Image

Re: [..] ListView Non accessible

Posté : sam. 31 mars 2012 00:11
par sandosen
GuiCtrlSetState(-1, $GUI_ONTOP)

Ceci a résolu le problème .
Encore merci pour l'efficacité.

Re: [R] ListView Non accessible

Posté : dim. 01 avr. 2012 08:08
par sandosen
J'ai parlé trop vite, on peut naviguer dans la listview via les touches direction du clavier mais impossible de cliquer sur l'item!! même chose dans le cas des button , je peux passer d'un button à l'autre par le clavier mais impossible de cliquer dessus

Re: [..] ListView Non accessible

Posté : dim. 01 avr. 2012 10:11
par mikell
Sur le script que tu as posté et en faisant les 2 corrections que je t'ai indiquées, j'arrive à cliquer sur les 2 boutons 'localhost' qui actualisent la listview, à naviguer dans la listview et à sélectionner un item en cliquant dessus
En l'état on peut rien faire de plus, mais si tu as rajouté des trucs ça vient peut-être de là mais ça je peux pas le deviner...

Re: [..] ListView Non accessible

Posté : dim. 01 avr. 2012 14:42
par sandosen
J'ai pas bien vu qu'une image était encore active ... C'est bon pour cette fois.
Merci mikell, cependant comme tu as pu tester le script , trouves tu normal que l'affichage du listview prennes tant de temps ????

Re: [R] ListView Non accessible

Posté : dim. 01 avr. 2012 18:24
par mikell
Ben oui, puisque avant chaque création d'item il faut faire le test wmi ...