Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#RequireAdmin
#include <GUIConstantsEx.au3>
#include <GUIListView.au3>
#include <WindowsConstants.au3>
#include "SystemRestore.au3"
#include <ListViewConstants.au3>
Global $Form_sr = GUICreate("Restauration Système", 860, 390, 10, 10)
GUISetBkColor(0xE0FFFF)
Global $rPoints
$PtRstLV = GUICtrlCreateListView("SqN|Description|Date - Heure", 10, 60, 540, 200, $WS_BORDER, $LVS_EX_CHECKBOXES)
_EnumRestP()
$SelAllPt = GUICtrlCreateRadio("Tout sélectionner", 15, 265, 120, 20)
GUICtrlSetFont(-1, 9, 400, 0, "comic sans ms")
$SelNoPt = GUICtrlCreateRadio("Ne rien sélectionner", 145, 265, 150, 20)
GUICtrlSetFont(-1, 9, 400, 0, "comic sans ms")
GUICtrlCreateGroup("", 560, 60, 290, 200, $WS_SIZEBOX)
$ActivateSR = GUICtrlCreateButton("Activer", 580, 90, 120, 30)
$DeactivateSR = GUICtrlCreateButton("Désactiver", 710, 90, 120, 30)
$CreatePt = GUICtrlCreateButton("Créer un point", 580, 140, 120, 30)
$DelSelPt = GUICtrlCreateButton("Supprimer la sélection", 710, 140, 120, 30)
$RazList = GUICtrlCreateButton("Actualiser", 580, 210, 120, 30)
$but_Restauration_system = GUICtrlCreateButton("Restauration system", 710, 210, 120, 30)
$quitter_sr = GUICtrlCreateButton("QUITTER", 380, 290, 120, 46)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $quitter_sr
Exit
Case $RazList
_EnumRestP()
Case $SelAllPt
For $i = 0 To _GUICtrlListView_GetItemCount($PtRstLV) - 1
_GUICtrlListView_SetItemChecked($PtRstLV, $i, True)
Next
GUICtrlSetState($SelAllPt, $GUI_UNCHECKED)
Case $SelNoPt
For $i = 0 To _GUICtrlListView_GetItemCount($PtRstLV) - 1
_GUICtrlListView_SetItemChecked($PtRstLV, $i, False)
Next
GUICtrlSetState($SelNoPt, $GUI_UNCHECKED)
Case $CreatePt
GUICtrlSetState($CreatePt, $GUI_HIDE)
_SR_CreateRestorePoint('Point de restauration créé par xxx')
Sleep(4000)
GUICtrlSetState($CreatePt, $GUI_SHOW)
_EnumRestP()
Case $DeactivateSR
If _SR_Disable() Then MsgBox(0, "Info", "la restauration system est bien désactivée", 30)
Case $ActivateSR
If _SR_enable() Then MsgBox(0, "Info", "La restauration system est bien activée", 30)
Case $but_Restauration_system
$DateHour =""
For $i = $rPoints[0][0] To 0 Step -1
If _GUICtrlListView_GetItemChecked($PtRstLV, $i) Then
;~ MsgBox(0, "test i="&$i,_GUICtrlListView_GetItemChecked( $PtRstLV,$i))
$DateH = StringSplit(StringReplace($rPoints[$rPoints[0][0] - $i][2], " ", "-"), "-")
$Date = StringSplit($DateH[1], "/")
$Date = $Date[2] & "/" & $Date[1] & "/" & $Date[3]
$Hour = StringSplit($DateH[2], ":")
$Hour = $Hour[1] + 1 & ":" & $Hour[2] & ":" & $Hour[3]
$DateHour = $Date & " - " & $Hour
$answer = MsgBox(262148, "Attention", "Le point de restauration system que vous avez selectionné est" & @CRLF &@CRLF& $rPoints[$rPoints[0][0] - $i][1] _
& " le " & $DateHour & @CRLF & @CRLF & "Voulez vous restaurer ce point (un redemarrage sera éxécuté)", 30)
If $answer = 6 Then
If _SR_Restore($rPoints[$rPoints[0][0] - $i][0]) Then
MsgBox(262144, "Attention la restauration system à réussie", "Le system va redémarrer, quittez toutes vos applications", 60)
Shutdown(2)
EndIf
EndIf
EndIf
Next
if $DateHour="" Then MsgBox(262144, "Attention","Vous n'avez pas selectionné un point de restauration dans la liste",10)
Case $DelSelPt
For $i = $rPoints[0][0] To 0 Step -1
If _GUICtrlListView_GetItemChecked($PtRstLV, $i) Then
;~
_SR_RemoveRestorePoint($rPoints[$rPoints[0][0] - $i][0])
EndIf
Next
_EnumRestP()
EndSwitch
WEnd
Func _EnumRestP()
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($PtRstLV))
$rPoints = _SR_EnumRestorePoints()
Dim $handle_liste[$rPoints[0][0] + 10]
For $i = $rPoints[0][0] To 1 Step -1
$DateH = StringSplit(StringReplace($rPoints[$i][2], " ", "-"), "-")
$Date = StringSplit($DateH[1], "/")
$Date = $Date[2] & "/" & $Date[1] & "/" & $Date[3]
$Hour = StringSplit($DateH[2], ":")
$Hour = $Hour[1] + 1 & ":" & $Hour[2] & ":" & $Hour[3]
$DateHour = $Date & " - " & $Hour
GUICtrlCreateListViewItem($rPoints[$i][0] & "|" & $rPoints[$i][1] & "|" & $DateHour, $PtRstLV)
Next
GUICtrlSendMsg($PtRstLV, $LVM_SETCOLUMNWIDTH, 0, $LVSCW_AUTOSIZE)
GUICtrlSendMsg($PtRstLV, $LVM_SETCOLUMNWIDTH, 1, $LVSCW_AUTOSIZE)
GUICtrlSendMsg($PtRstLV, $LVM_SETCOLUMNWIDTH, 2, $LVSCW_AUTOSIZE)
EndFunc ;==>_EnumRestP