[R] Récuperer item selectionner dans une Listview.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
LqX
Niveau 3
Niveau 3
Messages : 47
Enregistré le : ven. 11 nov. 2011 12:32
Status : Hors ligne

[R] Récuperer item selectionner dans une Listview.

#1

Message par LqX »

Bonsoir,

Voila je bloque a cause d'une Listview qui contient une centaine de ligne et j'aimerai recuperer l'item selectionner.

J'ai essayer par
$selec = ControlListView("title", "texte", $hwd, "GetSelected"
$item = ControlListView("title", "texte ", $hwd, "GetText", $selec)

Mais sa me retourne toujours 0.
Modifié en dernier par LqX le ven. 27 juil. 2012 10:42, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperer item selectionner dans une Listview.

#2

Message par mikell »

C'est correct, s'il n'y a pas d'erreur dans les ids ça doit marcher

Code : Tout sélectionner

$index = ControlListView($gui, "", $listview, "GetSelected")
$texte = ControlListView($gui, "", $listview, "GetText", $index)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
LqX
Niveau 3
Niveau 3
Messages : 47
Enregistré le : ven. 11 nov. 2011 12:32
Status : Hors ligne

Re: [..] Récuperer item selectionner dans une Listview.

#3

Message par LqX »

sa me retourne toujours 0, j'ai essayer aussi l'exemple de l'help :

Code : Tout sélectionner

ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "SelectAll")
ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "Deselect", 2, 5)
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "GetText", 9, 0))
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "FindItem", "14 KB", 1))
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "GetSelected", 1))
Et j'ai toujours 0 aussi.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Récuperer item selectionner dans une Listview.

#4

Message par TopXm »

Hello :)

Comme indiqué par Mikell normalement ton bout de code est bon, par contre rapport à l'exemple donné dans l'aide AutoIT, il ne faut pas perdre de vue plusieurs choses :
  • Pour que l'exemple fonctionne on est bien d'accord que tu as, au préalable, ouvert l'explorer Windows sur le dossier

    Code : Tout sélectionner

    @ProgramFilesDir & "\AutoIt3"
  • De plus il semblerait que selon les version de Windows le titre de la fenêtre ne soit pas le même. Dans mon cas (je suis sous Seven), pour que l'exemple fonctionne, j'ai du remplacer :

    Code : Tout sélectionner

    @ProgramFilesDir & "\AutoIt3"
    par

    Code : Tout sélectionner

    "AutoIt3"
  • Pour s'en convaincre tu passes un coup de d'AU3info sur la fenêtre de l'explorer, ce qui donne ces informations
  • AutoIT ayant évolué depuis la réalisation de l'exemple, il n'existe plus de fichier qui pèse 14 KB, si tu veux que ça fonctionne, il te faut donc adapter le poids d'un fichier du dossier comme par exemple 665 Ko. Ce ne sont pas des KB en French mais des Ko (sans UpperCut).
  • En plus la colonne des tailles des fichiers n'est plus au même endroit, il faut donc l'ajuster.

    Avec l'explorer comme ceci par exemple (en vue détail)
Cela donne un bout de code qui ressemble à ceci :
► Afficher le texteExemple
Tout cela pour dire que si tu ne postes pas ton bout de code on aura un peu de mal à te dire où le bas blesse ;)
LqX
Niveau 3
Niveau 3
Messages : 47
Enregistré le : ven. 11 nov. 2011 12:32
Status : Hors ligne

Re: [..] Récuperer item selectionner dans une Listview.

#5

Message par LqX »

Je viens de corriger mon erreur en prenant le temps de refaire un code leger pour le postez ici :)

Voici ce que j'ai changer.

$selec = ControlListView($gui, "", $users, "GetSelected")
$item = ControlListView($gui, "", $users, "GetText", $selec)

Par :

$selec = ControlListView("", "", $users, "GetSelected")
$item = ControlListView("", "", $users, "GetText", $selec)

Et maintenant cela fonctionne.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [R] Récuperer item selectionner dans une Listview.

#6

Message par TopXm »

Hello :)
LqX a écrit :$selec = ControlListView("", "", $users, "GetSelected")
$item = ControlListView("", "", $users, "GetText", $selec)
C'est pas un poil dangerous ce genre de code vu que tu ne définis pas la GUI traitée ?
Je présume qu'il tente d'exécuter le code sur la GUI active, au final si ce n'est pas celle qui contient la ListView il risque de bouder sérieusement non ?
Je dis ça car j'ai eu le souci sur un

Code : Tout sélectionner

Local $nPos = ControlGetPos('', '', $GuiCtrlParent)
ça fonctionne très bien tant que c'est la bonne GUI qui est active. J'avais minimisé la fenêtre un peu trop tôt et lorsque le code s'est exécuté ça s'est ramassé direct, attendu qu'il est dit dans l'aide que :
The title/text is referencing the parent window, so be careful with "","" which references the active window which may not be the one containing the controlID control.
Il y a de fortes chances qu'il en soit de même pour le ControlListView, donc prudence ;)
bon après ça se trouve je me fourvoie peut-être complétement :)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Récuperer item selectionner dans une Listview.

#7

Message par mikell »

TopXm a écrit :bon après ça se trouve je me fourvoie peut-être complétement :)
AMHA tu as absolument raison
Si le test est lancé depuis une gui sur la listview d'une autre fenêtre, avec un bouton par exemple, c'est la gui qui est active ^^
Comme apparemment il s'agit de tester une fenêtre externe au script, ce qu'il faut c'est un WinGetHandle
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre