> Tous les forumsAutres langages

 Renommer la corbeille avec un fichier bat et VBS
Statut du sujet : NON RESOLU Imprimer
 Vantales
  Posté le 24/03/2007 @ 21:09  
 Petit astucien

10 Messages

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 !

 Afficher le profil de VantalesEnvoyer un message privé à Vantales
 
 
Publicité
 breizhbugs  Posté le 25/03/2007 à 11:34  
Astucien

3001 Messages

Bonjour,

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

Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 Vantales  Posté le 25/03/2007 à 11:59  
Petit astucien

10 Messages

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.

Afficher le profil de VantalesEnvoyer un message privé à Vantales
 Revenir en haut de la page
 breizhbugs  Posté le 25/03/2007 à 13:39  
Astucien

3001 Messages

Désolé, je l'ignore.

Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 Vantales  Posté le 25/03/2007 à 16:44  
Petit astucien

10 Messages

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.

Afficher le profil de VantalesEnvoyer un message privé à Vantales
 Revenir en haut de la page
 Vantales  Posté le 27/03/2007 à 14:23  
Petit astucien

10 Messages

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 !

Afficher le profil de VantalesEnvoyer un message privé à Vantales
 Revenir en haut de la page
 breizhbugs  Posté le 28/03/2007 à 11:54  
Astucien

3001 Messages

J'ai pas testé mais essaye:

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

Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 Vantales  Posté le 28/03/2007 à 13:07  
Petit astucien

10 Messages

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

D'autres suggestions ?

Afficher le profil de VantalesEnvoyer un message privé à Vantales
 Revenir en haut de la page
 Ti_Gaß  Posté le 11/07/2007 à 04:42  
Petit astucien

12 Messages
Afficher le profil de Ti_GaßEnvoyer un message privé à Ti_Gaß
 Revenir en haut de la page
 Maxan  Posté le 17/07/2007 à 04:46  
Petit astucien

9 Messages
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é
Afficher le profil de MaxanEnvoyer un message privé à Maxan
 Revenir en haut de la page
 Ti_Gaß  Posté le 24/07/2007 à 18:33  
Petit astucien

12 Messages

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

Afficher le profil de Ti_GaßEnvoyer un message privé à Ti_Gaß
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Les sujets pertinents liés
Réaliser un projet à plusieurs
aide pour fichier .bat
Commande DIR sous DOS +cacher l'extension fichier?
Supprimer fichiers thumbs avec fichier bat ?
le paramètre sans le chemin
Probleme de lancement d 'exe dans un .bat
cd d'application auto démarable
Renommer un rep avec la date du jour
imprimer un fichier avec un batch
macro excel
script vb et création de tâche
Un peu de MSDOS
Script WSH de modification d'un fichier texte
Généalogique multimédia sur DVD ou Blu-Ray
renommer un projet sous builder c++
aide pour une fonction
Comment déclarer une variable date en V.B.E. ?
 
Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !



 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page
Comme PC Astuces, mettez-vous au vert avec Ikoula !
Faites le choix d'un hébergeur acteur de l'environnement !