> Tous les forums > Forum Autres langages
 Renommer la corbeille avec un fichier bat et VBS
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Vantales
  Posté le 24/03/2007 @ 21:09 
Aller en bas de la page 

Bonjour tout le monde.

Epilogue : Voilà, j'ai appris qu'on pouvait modifier la nom de la corbeille en modifiant le registre. Mais pour des amateurs comme moi, j'aurais voulu créer un programme qui me permettra de changer le nom de la corbeille, sans pour autant toucher à Regedit. Il m'est facile avec Multimedia Fusion de lancer tout fichier BAT ou EXE juste en cliquant sur un bouton.

L'idée : serait que l'utilisateur emploi mon programme pour rentrer le nouveau nom de la corbeille dans un champ, puis qu'il clique sur un bouton que j'aurais prédéfini pour appeller le fichier BAT qui à son tour va appeller le fichier VBS qui va modifier le registre pour afficher le nom que l'utilisateur aura choisit.

Détail : Utilisateur X ouvre le programme ; là il remplit un champ (nouveau nom de la corbeille) "poubelle". Puis l'utilisateur clique sur "modifier" ce qui aura pour conséquences 2 actions. La première étant de modifier le fichier VBS pour qu'il prenne en compte le nouveau nom de la corbeille "poubelle" (le problème ne se situe pas là, je sais comment le faire facilement !) Puis, une fois le VBS modifié, le fichier BAT est lancé (voir contenu pour comprendre la suite).

-------------------------- Contenu : ---------------------

fichier BAT :

Start launch.vbs

*********************************************

fichier launch.VBS :

Dim WshShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKCR\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\(par défaut)", "Poubelle"
WshShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters", 1, False
Set WshShell = Nothing
----------------------------------------------------------

Problème : une fois que le fichier VBS a fini son action, je constate que la corbeille n'a pas été modifié. Alors je vérifie le registre, et je découvre que dans HKCR\CLSID\{645FF040-5081-101B-9F08-00AA002F954E} il existe désormais deux chaines (par défaut) dont l'un a toujours la valeur "corbeille" et l'autre la valeur "Poubelle". Pouvez-vous me dire pourquoi le fichier VBS m'a créé une autre chaine au lieu de modifier la précédente ?

Supposition : il me semble que le problème à sa source dans le fichier VBS. Pouvez-vous me dire que dois-je modifier/rajouter/supprimer pour avoir ce que je souhaite ?

Remerciement : Je souhaite tout d'abord remercier tout ceux qui s'interresseront à mon cas mais un remerciement plus particulier à celui ou ceux qui me repondront !

Publicité
breizhbugs
 Posté le 25/03/2007 à 11:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Je ne crois pas qu'il faille mettre "(par defaut)", juste:
WshShell.RegWrite "HKCR\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\", "Poubelle"

Vantales
 Posté le 25/03/2007 à 11:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page

Merci breizhbugs,

J'ai modifié le code, et constaté les résultats :

Le registre est bien modifié, et la valeur (par défaut) est bien celui que j'ai mis (donc concernant le registre, tout est ok !) Par contre, sur mon bureau, ma corbeille s'appelle toujours "Corbeille". Pourquoi ? Faut-il que je redémarre pour que les modifications prennent effet ? N'aurait-il aucun moyen d'appliquer les modifications sans redémarrer ? Si oui, comment ?

Merci d'avance.

breizhbugs
 Posté le 25/03/2007 à 13:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Désolé, je l'ignore.

Vantales
 Posté le 25/03/2007 à 16:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page

Bonjour !

Je pensais le sujet clos... mais en rédémarrant mon ordinateur, j'ai remarqué que ma corbeille portait toujours le même nom : "Corbeille". J'en ai conclus que le procédé précédent ne marchais pas ! Néanmoins, dans le registre la valeur est bien sur "Poubelle" et non "Corbeille"... Alors là, je n'y comprend plus rien ! J'imagine donc que c'est le code qui est faux, ou bien pire, c'est pas le bon chemin dans le registre. Est-ce que quelqu'un pourrait me dire s'il vous plait ce qui ne va pas dans mon code ?

Merci d'avance.

Vantales
 Posté le 27/03/2007 à 14:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page

Recoucou tout le monde !

Alors voilà, en cherchant à gauche, à droite, je me suis rendu compte que mon code était pas tout à fait juste ! En fait, pour renommer la corbeille, et pour que celle-ci garde son nom au redémarrage, il faut changer 3 valeurs dans le registre.

J'arrive à changer 2 des 3 valeurs via un fichier VBS dont voici le code :

Dim WshShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}", "Poubelle"
WshShell.RegWrite "HKCR\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder\CallForAttributes", 0 ,"REG_DWORD"
WshShell.RegWrite "HKCR\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder\Attributes", 50,01,00,20 ,"REG_BINARY"

WshShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters", 1, False
Set WshShell = Nothing

J'ai mis en rouge le code où se situe le problème. En effet, je me suis renseigné et rendu compte que la valeur 50,01,00,20 était en hexadécimal et que pour une clé REG_BINARY, il fallait mettre les valeurs en ... en ... bha je sais plus en quoi exactement ! Mais par exemple, pour le 50, c'est la lettre P qu'il faut mettre, et pour le 20 c'est l'espace ! Par contre pour le 01 et le 00, j'ai pas trouvé comment les mettres. (Manuellement, c'est à dire aller directement dans le registre et taper les valeurs, c'est faisable ; mais moi je souhaiterais que ce soit le fichier VBS qui fasse tout !)

Ce que je veux exactement, c'est pouvoir insérer la valeur 50,01,00,20 dans un fichier REG_BINARY via un fichier VBS.

Donc si quelqu'un à une idée, je vous serais très reconnaissant.

Merci !

breizhbugs
 Posté le 28/03/2007 à 11:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'ai pas testé mais essaye:

WshShell.RegWrite "HKCR\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder\Attributes", "50,01,00,20" ,"REG_BINARY"

Vantales
 Posté le 28/03/2007 à 13:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page

Salut, j'ai déja testé avec les "" et ca marche pas non plus.

D'autres suggestions ?

Ti_Gaß
 Posté le 11/07/2007 à 04:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Publicité
Maxan
 Posté le 17/07/2007 à 04:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
Autrement, tu peux faire en sorte que ton fichier Vb/Batch exécute un fichier .reg qui se chargera des modifications du registre. Après tout, ces fichiers ont été crées spécialement pour les modifications du registre et donc c'est pas très compliqué
Ti_Gaß
 Posté le 24/07/2007 à 18:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Voici un fichier .reg qui rajoute la commande renommer dans le menu contextuel de la corbeil.

Windows Registry Editor Version 5.00


[HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder]
"Attributes"=hex:50,01,00,20
"CallForAttributes"=dword:00000000

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Convertir un fichier image de 2002 avec extension ".GOOD"
macro excell pour ouverture fichier avec password
créer fichier .gdb avec delphi
Supprimer fichiers thumbs avec fichier bat ?
exploiter un fichier * .dba créé avec palm desktop
pb avec fichier JAVA
Renommer un rep avec la date du jour
imprimer un fichier avec un batch
Ameliorer le Main "Java" avec les fonctions & procédures
Création d'un fichier End Of File
Plus de sujets relatifs à Renommer la corbeille avec un fichier bat et VBS
 > Tous les forums > Forum Autres langages