Page 1 sur 1
[R] Action sur des checkbox dans une listview
Posté : mer. 09 juil. 2014 20:02
par Nennimafoi
Bonjour,
J'aurais besoin d'un coup de main pour élaborer un programme qui me permet de déployer des applications sur des stations sélectionner au préalable d'une première listview.
Mon souci c'est que je ne sais pas comment faire pour qu'une fois les stations ayant leur checkbox cocher dans ma première listview puisse alimenter le deuxième listview
J'ai bien essayé sans succés d'utiliser GUICtrlSetState() ou _GUICtrlListView_SetItemChecked(), et j'avoue être un peu perdue
Une image et mon code seront je pense plus causant
Voici mon code:
► Afficher le texte
Code : Tout sélectionner
#cs -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AutoIt Version : v3.3.12.0
Auteur : TB
Fonction du script : Installation et mise à jour de logiciel.
Révision : Création JUILLET 2014
#ce -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Region ########################################### Déclarations des Includes, variables courantes ###########################################
#include <Array.au3>
#include <File.au3>
#include <Inet.au3>
#include <GuiConstantsEx.au3>
#include <ListviewConstants.au3>
#include <WindowsConstants.au3>
Dim $i, $ip, $gui, $list
Local $PcName
Global $add_ip_scribe, $add_ip_net, $add_ip_net_deb, $add_ip_net_fin
Global $list_pc_csv = @ScriptDir & "\liste_station.csv"
#Endregion ######################################### Déclarations des Includes, variables courantes #############################################
;_ScanRes()
_Gui_form1()
Func _ScanRes() ; récupération des noms de stations présents sur le réseau
TCPStartup()
$add_ip_scribe = TCPNameToIP ("SERVEUR")
$add_ip_net = StringSplit($add_ip_scribe, ".")
$add_ip_net_deb = "2"
$add_ip_net_fin = "200"
FileOpen ($list_pc_csv, 2)
For $i = $add_ip_net_deb to $add_ip_net_fin
$ip = $add_ip_net[1] & "." & $add_ip_net[2] & "." & $add_ip_net[3] & "." & $i
If Ping ($ip, 250) Then
If NOT @ERROR Then
$PcName=_TCPIpToName ($ip)
If $PCName <> "" Then
If $PCName <> @ComputerName Then
FileWriteLine ($list_pc_csv, $PcName)
EndIf
EndIf
EndIf
EndIf
Next
FileClose ($list_pc_csv)
TCPShutdown()
_Gui_form1()
EndFunc ;===> _ScanRes
Func _Gui_form1()
$gui = GUICreate("Sélection Stations", 430, 380)
$listview = GUICtrlCreateListView("Nom Stations| ", 10, 10, 180, 360, $LVS_NOCOLUMNHEADER, $LVS_EX_CHECKBOXES + $WS_EX_OVERLAPPEDWINDOW)
GUICtrlSendMsg($listview, $LVM_SETCOLUMNWIDTH, 0, 40)
$listview1 = GUICtrlCreateListView("Nom Stations| ", 240, 10, 180, 360, $LVS_NOCOLUMNHEADER)
GUICtrlSendMsg($listview1, $LVM_SETCOLUMNWIDTH, 0, 100)
$btn = GUICtrlCreateButton(">>", 200, 60, 30, 30) ; déplace les stations sélectionnées dans la liste des postes à traiter
_FileReadToArray($list_pc_csv, $list)
Dim $items1[$list[0]]
For $i = 1 To $list[0]
$items1[$i-1] = GUICtrlCreateListViewItem("| " & $list[$i], $listview)
Next
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btn ; déplace les stations sélectionnées dans la liste des postes à traiter
EndSwitch
WEnd
EndFunc ;===> _Gui_form1
Merci pour votre aide
Re: [..] Action sur des checkbox dans une listview
Posté : mer. 09 juil. 2014 22:19
par orax
Nennimafoi a écrit :et j'avoue être un peu perdue
Une fille ?!
Bienvenue sur le forum.
Ce code déplace les éléments
mais il n'y a pas de vérification de doublons.
► Afficher le texte
Code : Tout sélectionner
Func _Gui_form1()
$gui = GUICreate("Sélection Stations", 430, 380)
$listview = GUICtrlCreateListView("Nom Stations", 10, 10, 180, 360, $LVS_NOCOLUMNHEADER, $LVS_EX_CHECKBOXES + $WS_EX_OVERLAPPEDWINDOW)
GUICtrlSendMsg($listview, $LVM_SETCOLUMNWIDTH, 0, 40)
$listview1 = GUICtrlCreateListView("Nom Stations", 240, 10, 180, 360, $LVS_NOCOLUMNHEADER)
GUICtrlSendMsg($listview1, $LVM_SETCOLUMNWIDTH, 0, 100)
$btn = GUICtrlCreateButton(">>", 200, 60, 30, 30) ; déplace les stations sélectionnées dans la liste des postes à traiter
_FileReadToArray($list_pc_csv, $list)
Dim $items1[$list[0]]
For $i = 1 To $list[0]
$items1[$i-1] = GUICtrlCreateListViewItem($list[$i], $listview)
Next
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btn ; déplace les stations sélectionnées dans la liste des postes à traiter
_GUICtrlListView_DeleteAllItems($listview1)
For $i = 0 to UBound($items1)-1
if BitAND(GUICtrlRead($items1[$i], 1), $GUI_CHECKED) Then
$item = GUICtrlRead($items1[$i])
GUICtrlCreateListViewItem(GUICtrlRead($items1[$i]), $listview1)
EndIf
Next
EndSwitch
WEnd
EndFunc ;===> _Gui_form1
Édité : j'ai ajouté un _GUICtrlListView_DeleteAllItems() et changé d'autres trucs.
[R] Action sur des checkbox dans une listview
Posté : jeu. 10 juil. 2014 19:13
par Nennimafoi
Heu une fille désolé pour la faute d'orthographe.
Mon physique se rapproche plus de celui de Sébastien Chabal que de Paris Hilton
En tout cas grand merci pour ton aide