[R] Modification registre "ShellState" (REG_BINARY) avec AutoIT

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

[R] Modification registre "ShellState" (REG_BINARY) avec AutoIT

#1

Message par someonescripting »

Bonjour,

Je me permets de venir vers vous car après moult essais et 2h de recherche sur le net, je n'arrive pas à comprendre où je me plante ...

Je m'explique, je débute AutoIt et je souhaiterais faire un script qui me simplifierais la vie lors de mes réinstalle de Windaube. J'arrive à faire ce que je veux, sauf pour cette ligne :

Code : Tout sélectionner

RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", "ShellState", "REG_BINARY", 24 00 00 00 33 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 13 00 00 00 00 00 00 00 62 00 00 00)
Pour activer la confirmation de suppression d'un fichier en direction de la corbeille, je doit modifier les données du registre qui sont par défaut (à peu près, j'ai plus le PC cible sous les yeux) : 24 00 00 00 3c 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 13 00 00 00 00 00 00 00 62 00 00 00.

Je souhaiterais remplacer dans le registre le "3c" en "33".
J'ai essayé diverses syntaxes, avec ou sans "", avec ou sans espaces, avec des virgules, et a chaque fois, ça me fait n'importe quoi mais pas ce que je souhaiterais.

Je précise que le but de ce script est autant que faire ce peux, de fonctionner en standalone en tant que fichier exécutable. La seule solution que j'ai trouvée pour le moment est de faire un ".reg" contenant ma modification mais cela m'oblige à avoir le ".reg" avec l'executable, ce qui ne me plait pas trop ...

Code : Tout sélectionner

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"ShellState"=hex:24,00,00,00,33,28,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  01,00,00,00,13,00,00,00,00,00,00,00,62,00,00,00
Je m'en remet donc à vous !

D'avance merci beaucoup !
Modifié en dernier par someonescripting le mer. 17 juin 2020 00:37, modifié 2 fois.
Un bon informaticien, est un informaticien fainéant !

Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [..] Modification registre "ShellState" (REG_BINARY) avec AutoIT

#2

Message par someonescripting »

Re, j'ai oublié de montrer ma solution annexe qui ne me plait pas trop :

Code : Tout sélectionner

RunWait (@ComSpec & ' /c regedit /s shellstate.reg')
Le contenu du ".reg" étant montré au précédent post.
Merci !
Un bon informaticien, est un informaticien fainéant !

jpascal
Niveau 5
Niveau 5
Messages : 138
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

Re: [..] Modification registre "ShellState" (REG_BINARY) avec AutoIT  

#3

Message par jpascal »

Cette valeur est de l'hexadécimal : 24 00 00 00 33 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 13 00 00 00 00 00 00 00 62 00 00 00
Et la fonction demande du binaire pour ce type de clé.

Il serait logique d'utiliser Binary('0x240000003328000000000000000000000000000001000000130000000000000062000000')

Je te laisse tester et nous dire.
AutoIt 3.3.15.1 / SciTE 4.1.0 / Windows 7 & 10 x64

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5999
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Modification registre "ShellState" (REG_BINARY) avec AutoIT

#4

Message par mikell »

Je confirme, ça marche

RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", "test", "REG_BINARY", Binary('0x240000003328000000000000000000000000000001000000130000000000000062000000'))
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [..] Modification registre "ShellState" (REG_BINARY) avec AutoIT

#5

Message par someonescripting »

Merci, merci et encore merci ! J'ai eu beau regarder des exemples d'autres script essayant de modifier ce genre de valeur de registre, et ils ne mettaient que des "", et je n'ai pas vu ça non plus dans la doc de "regwrite".
Je l'ai laissé en une seule ligne :

Code : Tout sélectionner

RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", "ShellState", "REG_BINARY", Binary("0x240000003328000000000000000000000000000001000000130000000000000062000000"))
Dans tous les cas, c'est juste parfait, merci encore pour vos réponses !
Un bon informaticien, est un informaticien fainéant !

Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [R] Modification registre "ShellState" (REG_BINARY) avec AutoIT (confirmation de suppresion vers la corbeille)

#6

Message par someonescripting »

Re !

Au final j'ai trouvé plus simple pour afficher la confirmation de suppression de ficher en direction de la corbeille par hasard sur des forums anglais :

Code : Tout sélectionner

RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "ConfirmFileDelete", "REG_DWORD", 0x00000001)
Cela coche et grise l'option dans les paramètres de la corbeille mais bon, c'est le genre de truc qu'on me modifie qu'une fois normalement.
Après je pense qu'il est toujours possible de mettre "0" comme données ou de supprimer la valeur si un retour en arrière est envisagé.

Si jamais, ça pourrait en intéresser d'autres !

++
Un bon informaticien, est un informaticien fainéant !

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5999
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Modification registre "ShellState" (REG_BINARY) avec AutoIT (confirmation de suppresion vers la corbeille)

#7

Message par mikell »

someonescripting a écrit :
mer. 17 juin 2020 00:31
Cela coche et grise l'option dans les paramètres de la corbeille
... donc ça interdit à l'utilisateur d'éventuellement modifier ce paramètre plus tard manuellement si besoin
Hmm. Personnellement je suis pas fan - mais ce n'est que mon avis :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
someonescripting
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mar. 16 juin 2020 03:55
Status : Hors ligne

Re: [R] Modification registre "ShellState" (REG_BINARY) avec AutoIT

#8

Message par someonescripting »

Bonjour Mikell,
Ce script n'est destiné qu'à un usage personnel dans un premier temps, il a pour but de me faire gagner du temps lors de mes reinstall de Windows, soit une à deux fois par an, sur 2 à 3 PC.
Ensuite, je sais que cette valeur du registre agit sur d'autres paramètres, donc bien à lancer tout de suite après une install de Windows, mais si je la donne à quelqu’un qui aurais déjà plus ou moins paramétré son OS, je ne sait pas quelle impact cela pourrais avoir.
De plus, si je partage ce script, comme il ouvre une message box demandant si l'utilisateur désire afficher le message de confirmation de suppression, celui-ci n'a qu'à dire "non". (Je la garde tout de même sous le coude)

Code : Tout sélectionner

#RequireAdmin
;Activation de la confirmation de suppresion des fichiers vers la corbeille.
$Trash = MsgBox (36, "Confirmation de suppression", "Voulez-vous activer le message de confirmation de suppression de fichier à destionation de la corbeille ?")
	If $Trash = 6 Then
		RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "ConfirmFileDelete", "REG_DWORD", 0x00000001)
		;RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", "ShellState", "REG_BINARY", Binary("0x240000003328000000000000000000000000000001000000130000000000000062000000"))
	EndIf
De plus, pour le moment je boss sur la V1 de ce script afin d'avoir la base, et j'ai déjà des idées pour une V2 qui pourrait être réversible par exemple, et j'aurais certainement besoin d'aide.
Lorsque j'estimerais avoir fini avec la V1, je la partagerais en complet sur le forum afin d'avoir des avis d’optimisation et discuter d'une éventuelle V2.
Un bon informaticien, est un informaticien fainéant !

Répondre