[R] Détecter l'état de la restauration système

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

[R] Détecter l'état de la restauration système

#1

Message par franco »

Bonjour à toutes et à tous.

J'utilise l'UDF SystemRestore.au3 pour :
  1. Lister tous les points de restauration (dans une listview avec cases à cocher)
  2. Créer un point de restauration
  3. Supprimer les points de restaurations souhaités (en cochant les cases correspondantes).
  4. Activer la restauration système
  5. Désactiver la restauration système
La seule chose que je ne sais pas faire, que je n'ai pas trouvé comment faire : détecter / vérifier l'état de la restauration système, à savoir si elle est activée ou désactivée.


J'avais trouvé ce topic : http://www.autoitscript.com/forum/topic ... -disabled/
Cela détecte l'état de la restauration système en vérifiant la valeur d'une donnée (disableSR).

Mais vu que ce topic date de 2006, je comprends donc pourquoi je n'ai pas cette donnée/valeur. :mrgreen:

J'ai quand même tenté ceci :
► Afficher le textecode n°1
La restauration système a bien été désactivée, mais cela m'affiche le message d'erreur cité ci-dessus.


J'ai testé cela aussi :
► Afficher le textecode n°2
La restauration système a bien été désactivée, mais ça m'affiche enabled...
D'ailleurs, si la restauration est active, ça m'affiche aussi enabled...

J'ai même recherche dans le registre, des valeurs, etc...
Avec seaf (logiciel de recherche sur disque dur et/ou registre), j'ai tenté de faire une recherche avec systemrestore (uniquement sur le registre)
=> 4 Clés, aucune valeur qui donne l'état de la restauration système.


Donc, du coup, je sèche.

Y-a-t-il un moyen de vérifier l'état de la restauration système ?


PS : Pour les gens désirant voir ce que j'ai fait (pas fini ^^), voici le code :
► Afficher le texteCode
Merci à vous.
Modifié en dernier par franco le lun. 15 déc. 2014 18:17, modifié 1 fois.
L'entraide, c'est mon dada ;)
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#2

Message par Y01 »

Bonjour,

Sur quel système d'exploitation compte tu faire tourner ce bout de code ?
Y01
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#3

Message par franco »

Salut.

Sur XP jusqu'à windows 8.1.
=> sur XP, je pense que la méthode liée à la clé registre fonctionnera.

Je pense aussi que je dois donc faire des conditions.

SI XP, faire cette méthode.
Sinon, autre méthode.



Faut donc trouver une méthode qui fonctionne de windows vista à windows 8.1.


Dès que l'occasion me le permettra, je lancerais ma VM XP, afin de voir si la méthode fonctionne.
Je réinstallerais sous VM vista, par la même occasion.


@+ et merci de ta réponse.
L'entraide, c'est mon dada ;)
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#4

Message par Y01 »

C'est exactement ce que j'allais te dire de faire :)

Tiens nous au courant des résultats de tes tests.
Y01
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#5

Message par A2Energie »

Bonjour,

Je pense qu'il faut détecter le bouton (Check) activer ou desactiver dans les propriétés système.

Pour le moment je n'arrive pas à identifier correctement la fenêtre système : Protection système pour Disque local (C:)

Code : Tout sélectionner

$etat = ControlCommand("[CLASS:#32770]", "", "[CLASS:Button; INSTANCE:2]", "IsChecked", "")
MsgBox(1,"ETAT",$etat)
Je te tiens informé si je trouve.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#6

Message par orax »

Sur Vista et +, c'est RPSessionInterval.

Code : Tout sélectionner

$SysRst = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore", "RPSessionInterval")
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
RPSessionInterval
Windows Vista: Receives zero if System Restore is disabled.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#7

Message par franco »

Salut et merci à vous tous :D

Sur mon windows 8.1, je n'ai pas ceci : "RPSessionInterval".
Donc, dès que je réinstalle vista, je pourrais voir.


Pour l'histoire du détection du bouton check (propriétés système), c'est différent sous windows 8.
Par contre, ça risque de fonctionner pour les autres.


J'ai de quoi tester : merci à tous :D



Je reviendrai si j'ai des news ^^
++
L'entraide, c'est mon dada ;)
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#8

Message par A2Energie »

Bonjour,

Concernant Windows 8.1,
Afin d'afficher la fenêtre d'activation ou désactivation :
Clique droit sur menu démarré / Systeme / Protection du systeme / Configurer

Le problème étant qu'après différents essais et différentes méthodes la fenêtre : Protection système pour Disque local (C:) ne semble pas répondre aux control...

Je pense qu'il s'agissait d'une mauvaise piste.
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#9

Message par A2Energie »

Bonjour,

Je pense pas être util, mais voici une solution alternative pour détecter la coche ou décoche de la case restauration activé ou désactivée.

Code : Tout sélectionner

$EtatPos = WinGetPos("[CLASS:#32770; TITLE:Protection système pour Disque local (C:)]", "")
If PixelGetColor($EtatPos[0] + 50, $EtatPos[1] + 110) = 16777215 Then
   MsgBox(1, "Etat", "Désactivé")
Else
   MsgBox(1, "Etat", "Activé")
EndIf
 
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#10

Message par orax »

franco a écrit :Sur mon windows 8.1, je n'ai pas ceci : "RPSessionInterval".
Moi je l'ai (sur Win 8.1). :mrgreen:
De ce que j'ai compris, il peut y avoir RPSessionInterval et/ou RPGlobalInterval.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#11

Message par franco »

Salut.

J'ai ni l'un... ni l'autre :lol:

Tu as la pro de windows 8.1 ? Car moi, non. :mrgreen:

Sinon, encore un mystère des joies de l'informatique. :P


Bon, je vais lancer XP. ^^
On verra s'il détecte (ou non) l'état de la restauration système.


++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#12

Message par franco »

Bonsoir / Rebonsoir :D

Pour XP, c'est résolu !

Voici le code "fonctionnel" (que je dois donc adapter, mais bon, pas de souci puisque c'est OK)
► Afficher le textecode
  1. Cela m'affiche bien désactivé après la désactivation de la restauration système
  2. Cela m'affiche bien activé après la réactivation de la restauration système
Il ne me reste plus que les tests sous windows vista,7 et 8.


EDIT :
Effectivement, pour vista, c'est une autre valeur que XP (RPSessionInterval)

Voici le code :
► Afficher le textecode
Donc maintenant, l'étau se resserre : windows 7 et 8 (et 8.1).


Merci pour vos bons conseils 8)
++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#13

Message par franco »

Recoucou :D

D'après test, c'est à partir de windows 7 que cela se complique.
  • Plus de valeur de registre concernant la clé liée à systemrestore
  • Quand on lance la protection système, plus de case à cocher et au3Info ne donne pas le texte désiré.
Or, quand on lance la protection système, il y a un bouton configurer. Image1
Si on clique dessus, on a 3 cases (la première et la troisième correspondant à "activé" et "désactivé"). Image2

On peut donc (d'après ce lien : http://autoitscript.fr/forum/viewtopic. ... 332#p91332 ou http://autoitscript.fr/forum/viewtopic. ... 345#p91345 ), faire comme ceci (ou adapter) afin d'avoir l'état.

ma question :
Est-possible de faire cela si la fenêtre en question est minimisée ?

Cela m'arrangerait bien, j'avoue. :P


++
L'entraide, c'est mon dada ;)
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#14

Message par A2Energie »

Bonjour,

Concernant le controlcommand (si vous parvenez a le faire fonctionner) : Oui.
Concernant le Pixelcolor : Non, vous devez avoir la fenetre visible sur l écran

Cordialement..
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#15

Message par franco »

Recoucou.

Je pense qu'à partir de windows 7, je n'ouvrirais que la protection du système.
Ils verront par eux-même que l'outil a bien activé (ou désactivé) la restauration système.

Pour XP, vista, soit je fais commme dit plus haut, soit je fais de même.


En tout cas, merci à vous.
Je reposterai le code fini.


++
L'entraide, c'est mon dada ;)
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#16

Message par jl56 »

Bonjour à tous,

@franco

Merci pour ce partage, je cherchais justement a faire cette manip, ton script m'a fait gagné beaucoup de temps.
je te renvoie, pour l'exemple, ton code avec mes modifs
► Afficher le texte

Merci encore

A+ JL56
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#17

Message par franco »

Salut :)

Content pour toi si mon bout de code t'a permis de finir le tien :)

J'aime le partage, et vu que je trouve tout ou presque sur le net, autant en faire profiter les autres. ;)


Par contre, tu peux améliorer ton code, ou plutôt faire "propre" ^^

Regarde ceci

Code : Tout sélectionner

        Case $GUI_EVENT_CLOSE
            Exit
        Case $quitter_sr
            Exit
 
Remplace par ceci

Code : Tout sélectionner

        Case $GUI_EVENT_CLOSE, $quitter_sr
            Exit
Vu que c'est le même code, en mettant sous cette forme, cela équivaut à "scripter" les deux boutons avec le même code (ici Exit).




++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Détecter l'état de la restauration système

#18

Message par franco »

Salut.

Si je devais résumer ma découverte en une phrase, la voici :
Comment passer pour un c*n en deux minutes :mrgreen:

Orax a dit plus haut : « Sur Vista et +, c'est RPSessionInterval »
=> Je lui ai répondu que je n'avais pas cette valeur... Ni les autres données par ce dernier.

Pour que les autres ne perdent pas le fil conducteur :
Orax
Moi
Orax
Moi

Plusieurs tests effectués, même constat : aucune valeur identique.
Je me suis même dit : qu'est-ce que j'ai encore cassé :lol:


Par bonheur, je connais un outil bien pratique : RegShot
  • Il permet de faire DEUX clichés du registre afin de comparer ces deux éléments.
  • Un rapport s'ouvre en indiquant donc les modifications apportées.
Du coup, j'ai eu l'idée suivante (que j'ai réalisée sans problème) :
Premier cliché > Désactiver la restauration système > Deuxième cliché > Comparer.

Le rapport s'ouvre : plusieurs lignes s'offrent à moi.

Je décide donc de supprimer toutes les lignes ne correspondant pas à la restauration système...

Et c'est là qu'Orax va rire ^^
  • Regardez la seule ligne exploitable : HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\RPSessionInterval: 0x00000001
  • Regardez ce que disait Orax : Sur Vista et +, c'est RPSessionInterval
Bref, Orax avait raison.

Mais pourquoi je ne voyais rien...


Car comme un véritable novice, j'ai oublié qu'à partir de windows 7, l'uac étant activé, je devais ouvrir le registre avec les droits admin pour que je vois toutes les valeurs...

Cela veut dire que deux choses :
  1. Je dois mieux réflechir la prochaine fois. C'est pas gagné :mrgreen:
  2. Je n'ai plus de problème, puisque je peux détecter l'état de la restauration système à la fois sur XP, Vista, 7, 8 et 8.1
Bref, à cause de mes étourderies, j'ai fait bosser des membres pour rien... Désolé les gars. ;)

J'aurais appris qu'à partir de vista, c'est un autre valeur à traiter.


Donc, je peux continuer mon code. Je le posterais une fois finie.
Et je peux donc faire ce que je voulais faire.



Vais donc passer en résolu. 8)

Pour ceux qui sont intéressés par RegShot (car bigrement pratique, j'en ai fait les frais :mrgreen: ) :
► Afficher le texteRegShot

Merci à tous.
Et Shame on Me. ^^
L'entraide, c'est mon dada ;)
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [R] Détecter l'état de la restauration système

#19

Message par jl56 »

Bonjour à tous,

@franco

Je suis toujours intéressé si tu as besoin de tester sur des OS fait moi signe

A+

JL56
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R] Détecter l'état de la restauration système

#20

Message par orax »

D'après ce lien (pour Vista et +) : http://msdn.microsoft.com/en-us/library ... 85%29.aspx il y a les valeurs RPGlobalInterval ou RPSessionInterval à prendre en compte. Donc par sécurité, peut-être qu'il serait préférable de vérifier ces 2 valeurs.

Avec Regedit, l'actualisation n'est pas automatique. Je ne sais pas si tu l'avais fait mais il faut appuyer sur F5 pour voir les nouvelles données apparaître.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre