Page 1 sur 1

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

Posté : mar. 16 juin 2020 04:22
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 !

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

Posté : mar. 16 juin 2020 04:31
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 !

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

Posté : mar. 16 juin 2020 12:20
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.

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

Posté : mar. 16 juin 2020 14:01
par mikell
Je confirme, ça marche

RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", "test", "REG_BINARY", Binary('0x240000003328000000000000000000000000000001000000130000000000000062000000'))

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

Posté : mar. 16 juin 2020 14:08
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 !

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

Posté : mer. 17 juin 2020 00:31
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 !

++

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

Posté : mer. 17 juin 2020 14:06
par mikell
someonescripting a écrit : mer. 17 juin 2020 00:31Cela 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:

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

Posté : mer. 17 juin 2020 15:07
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.