Page 1 sur 1
[R] Scan et checkbox
Posté : jeu. 20 mars 2014 11:40
par toma76
Bonjour a tous,
je cherche un moyen de faire un scan des disques et d'integrer le resultat dans des checkbox cocher automatiquement
Comment puis-je faire ?
merci
Thomas
Re: [..] Scan et checkbox
Posté : jeu. 20 mars 2014 13:31
par julie
bonjour un peu plus de précision ne serait pas de trop
un scan des disques pour rechercher quoi ?
et les checkbox ont les check si le scan renvoie quoi ?
d'ailleurs si tu as l'interface gui poste la ici
pour le moment je pense pas que tu es beaucoup de réponse avec si peu d'information fourni
ou peut etre souhaite tu savoir si un disque est inserez et si c'est le cas alors on check le checkbox ?
cdlt
Re: [..] Scan et checkbox
Posté : ven. 21 mars 2014 11:30
par toma76
Bonjour,
Le scan des disques est deja integrer dans mon code, il s'agit enfaite de scanner les disques afin de lister les dossiers present,
► Afficher le texte
$Liste1 = _FileListToArray("C:")
$Liste_taille = _FileListToArray("")
$Liste2 = _FileListToArray("D:")
_GUICtrlListView_InsertColumn($ListView, 0, "C:", 100)
_GUICtrlListView_InsertColumn($ListView1, 0, "C:", 100)
_GUICtrlListView_InsertColumn($ListView, 2, "Taille", 100)
_GUICtrlListView_InsertColumn($ListView1, 2, "Taille:", 100)
_GUICtrlListView_InsertColumn($ListView, 3, "D:", 100)
_GUICtrlListView_InsertColumn($ListView1, 3, "D:", 100)
_GUICtrlListView_InsertColumn($ListView, 4, "Taille:", 100)
_GUICtrlListView_InsertColumn($ListView1, 4, "Taille:", 100)
For $i = 1 To UBound($Liste1) - 1
_GUICtrlListView_AddItem($ListView, $Liste1[$i], 0)
_GUICtrlListView_AddItem($ListView1, $Liste1[$i], 0)
Next
For $i = 1 To UBound($Liste_taille) - 1
_GUICtrlListView_AddSubItem($ListView, $i-1, $Liste_taille[$i], 1)
_GUICtrlListView_AddSubItem($ListView1, $i-1, $Liste_taille[$i], 1)
Next
For $i = 1 To UBound($Liste2) - 1
_GUICtrlListView_AddSubItem($ListView, $i-1, $Liste2[$i], 2)
_GUICtrlListView_AddSubItem($ListView1, $i-1, $Liste2[$i], 2)
Next
j'aimerais que a la place d'integrer ceci en ListView cela ce mettent dans une liste de checkbox pre-cocher que l'utilsateurs devra decocher si il ne veut pas sauvegarder cet partie
Re: [..] Scan et checkbox
Posté : ven. 21 mars 2014 13:41
par jguinch
Pour avoir des checkbox dans une listview, il faut utiliser le style étendu $LVS_EX_CHECKBOXES
Pour cocher la case correspondante, il y a GUICtrlSetState() ou _GUICtrlListView_SetItemChecked()
Re: [..] Scan et checkbox
Posté : ven. 21 mars 2014 13:55
par mikell
Ce code liste dossiers et fichiers, il faut légèrement l'aménager si tu ne veux que les fichiers
► Afficher le texte
Code : Tout sélectionner
#include <GuiConstantsEx.au3>
#include <ListviewConstants.au3>
#include <Array.au3>
#Include <File.au3>
#include <WindowsConstants.au3>
Global Const $ASSOCSTR_DEFAULTICON = 15
$gui = GUICreate("listview", 280, 380)
$listview1 = GUICtrlCreateListView(" | ", 10, 10, 250, 360, $LVS_NOCOLUMNHEADER, $LVS_EX_CHECKBOXES+ $WS_EX_CLIENTEDGE)
GUICtrlSendMsg($listview1, $LVM_SETCOLUMNWIDTH, 0, 40)
$list = _FileListToArray("c:", "*", 2)
$list2 = _FileListToArray("c:", "*", 1)
Dim $items1[$list[0]+$list2[0]]
For $i = 1 To $list[0]
$items1[$i-1] = GUICtrlCreateListViewItem(" |" &$list[$i], $listview1)
;; GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetImage(-1, "shell32.dll", -4)
Next
For $i = $list[0]+1 To $list[0]+$list2[0]
$file = $list2[$i-$list[0]]
$items1[$i-1] = GUICtrlCreateListViewItem(" |" & $file, $listview1)
GUICtrlSetState(-1, $GUI_CHECKED)
$icon = _LocateZeIcon("c:\" & $file)
GUICtrlSetImage(-1, $icon[0], $icon[1])
Next
;_ArrayDisplay($items1)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
EndSwitch
Wend
;=======================================================
Func _LocateZeIcon($sFile) ; WinAPI_PathParseIconLocation($sFile)
Local $Result[2]
Local $sExt = StringRegExpReplace($sFile, '.+(\..+?)', "$1")
If $sExt = ".exe" Then
$Result[0] = $sFile
$Result[1] = -1
Else
Local $Data = _WinAPI_AssocQueryString($sExt, 15) ;$ASSOCSTR_DEFAULTICON = 15
Local $Ret = DllCall('shlwapi.dll', 'int', 'PathParseIconLocationW', 'wstr', $Data)
If @error Then
Return SetError(1, 0, 0)
EndIf
$Result[0] = $Ret[1]
If StringInStr($Result[0], "shell32.dll") AND $Ret[0]<0 Then
$Result[1] = $Ret[0]+81
ElseIf $Ret[0]<0 Then
$Result[1] = -$Ret[0]
Else
$Result[1] = -$Ret[0]-1
EndIf
EndIf
If $Result[0] = "" Then
$Result[0] = @SystemDir & "\shell32.dll"
$Result[1] = 0
EndIf
Return $Result
EndFunc ;==>_LocateZeIcon
Func _WinAPI_AssocQueryString($sAssoc, $iType, $iFlags = 0, $sExtra = '')
Local $TypeOfExtra = 'wstr'
If Not StringStripWS($sExtra, 3) Then
$TypeOfExtra = 'ptr'
$sExtra = 0
EndIf
Local $Ret = DllCall('shlwapi.dll', 'uint', 'AssocQueryStringW', 'dword', $iFlags, 'dword', $iType, 'wstr', $sAssoc, $TypeOfExtra, $sExtra, 'wstr', '', 'dword*', 4096)
If @error Then
Return SetError(1, 0, '')
Else
If $Ret[0] Then
Return SetError(1, $Ret[0], '')
EndIf
EndIf
Return $Ret[5]
EndFunc ;==>_WinAPI_AssocQueryString
Re: [..] Scan et checkbox
Posté : ven. 21 mars 2014 15:06
par toma76
Merci