Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

script VBS pour ouvrir des propriétés

7 réponses
Avatar
Sam \(au boulot\)
Bonjour,

Pour un usage un peu spécial, j'aurais besoin d'un script VBS (ou des
conseils pour le faire) qui permette d'ouvrir automatiquement les propriétés
de "Mes Documents" (comme si on clique avec le bouton droit, puis
propriétés).

Si quelqu'un a une méthode qui fonctionne autrement qu'avec un script VBS,
je suis prenneur ! Voici ce qui motive ma requête, lecture facultative :o)

J'ai constaté un phénomène étrange. Ceci fait suite à mon post récent
intitulé "TSE : défaut d'affichage de ...". Il semblerait que lorsque
j'ouvre ces propriétés après l'ouverture de session, je n'ai plus de pb
d'affichage. Si je ne le fais pas j'ai au moins 90% de chance que ça déconne
(boites de dialogues vides, de tailles anormales, ...). On m'a aussi signalé
quelques pb sous Word et Excel. Par contre ces pb d'affichages concernant
essentiellement office, mais pas que office. Et à part ça je n'ai aucun pb
d'instabilité du système. D'ailleurs j'ai effectué une réparation d'office
(conformément à une install TSE) et ça ne va pas mieux.

Donc en attendant de trouver mieux, comme il semble que l'ouverture de cette
boite de dialogue permette "d'initialiser" quelque chose dans la session,
j'aimerais faire quelques expérience (ne pas comprendre est trop frustrant,
il faut trouver une explication et une solution rationelle, qui à passer par
quelques tests pour cerner le pb). La première étant d'ouvrir cette boite à
l'ouverture de session pour voir si les pb disparaissent. La démarche est
étrange, je sais. La prochaine étape est le sacrifice humain d'un
utilisateur :o)

Un p'tit script VBS s.v.p. (j'ai cherché sur le net, pas trouvé).
Sam.

7 réponses

Avatar
Jean-Claude BELLAMY
Sam (au boulot) s'est ainsi
exprimé:

Bonjour,

Pour un usage un peu spécial, j'aurais besoin d'un script VBS (ou des
conseils pour le faire) qui permette d'ouvrir automatiquement les
propriétés de "Mes Documents" (comme si on clique avec le bouton
droit, puis propriétés).


Il suffit de demander ! ;+)
Script "FileProperties.vbs"
Admet en paramètre un nom de fichier (avec ou sans le chemin)

---------- couper ici ----------
set args = wscript.arguments
If args.count=0 then wscript.quit
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
filepath=fso.GetAbsolutePathName(args(0))
If not fso.FileExists(filepath) Then
wscript.echo "Le fichier " & filepath & " n'existe pas"
wscript.quit
End If
set shell = CreateObject("Shell.Application")
folder = left(filepath, InstrRev(filepath, ""))
file = mid(filepath, InstrRev(filepath, "")+1)
set folderObj = shell.NameSpace(folder)
set fileObj = folderObj.ParseName(file)
fileObj.InvokeVerb("Properties")
MsgBox fileObj.Name
---------- couper ici ----------

Le pb avec ce script est que la fenêtre de propriétés est fille de celle du
script.
Donc elle disparait automatiquement quand le script se termine.
C'est pourquoi on trouve à la fin une boite dialogue (qui affiche ici le
"namespace" du fichier sélectioné, mais on aurait pu afficher n'importe quoi
d'autre), qui termine le script seulement après que l'on ait appuyé sur OK.


Pour info :
----------
Le nom du fichier qui apparait dans "fileObj.Name" est un nom "réduit", sans
chemin, voire sans extension si on demandé dans les propriétés d'affichage
des fichiers et dossiers le masquage des extensions connues. (c'est le nom
affiché par le "shell", donc dans l'explorateur)


On peut changer le paramètre transmis à la méthode "invokeverb", afin de
déclencher une autre action.
P.ex.
fileObj.InvokeVerb("Open")
va provoquer l'ouverture du fichier
fileObj.InvokeVerb("Print")
va provoquer l'impression du fichier
...
Ce paramètre doit être un des "verbes" que l'on retrouve dans le menu
contextuel du fichier sélectionné.
Ce verbe peut être le menu réel "localisé" ("Propriété&s") ou le verbe
d'origine en anglais ("Properties")

On peut récupérer la liste des verbes disponibles par ces instructions :
(à ajouter après la ligne "set fileObj= folderobj.ParseName(file)")

set fileObjVerbs = fileObj.verbs
nCount = fileObjVerbs.Count
wscript.echo nCount & " verbes pour " & fileObj.Name
For i = 0 To nCount-1
set verb = fileObjVerbs.Item(i)
wscript.echo i & " : " & verb.Name
Next

cela donne, p.ex. chez moi :
H:WSH>FileProperties.vbs c:boot.ini
22 verbes pour boot.ini
0 : Ou&vrir
1 : &Imprimer
2 : R&un
3 : Conver&tir au format Adobe PDF
4 : Convertir au format Adobe PD&F et envoyer par messagerie
5 : EditPlus
6 : &Hex Edit with Hex Workshop
7 :
8 : &Ajouter à l'archive...
9 : A&jouter à "boot.rar"
10 : Compresse et e-mail...
11 : Compresse dans "boot.rar" et e-mail
12 :
13 : Upload using WS_FTP Upload Wizard
14 : Split &File...
15 :
16 :
17 : &Couper
18 : Co&pier
19 : Créer &un raccourci
20 : Suppri&mer
21 : Propriété&s

NB: les items vides correspondent à des arborescences de menus
P.ex. en 7 c'est en réalité le menu "Ouvrir avec ..."
Je n'ai pas cherché comment explorer cette arborescence


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Sam \(au boulot\)
Après essais cela ne fonctionne pas avec "Mes Documents". Par contre avec un
fichier ça fonctionne parfaitement.

Merci.
Sam.

"Jean-Claude BELLAMY" a écrit dans le
message de news:

Il suffit de demander ! ;+)
Script "FileProperties.vbs"
Admet en paramètre un nom de fichier (avec ou sans le chemin)


[...]


Avatar
Jean-Claude BELLAMY
Sam (au boulot) s'est ainsi
exprimé:

Après essais cela ne fonctionne pas avec "Mes Documents". Par contre
avec un fichier ça fonctionne parfaitement.


Normal! Tu m'avais parlé seulement de "fichier"...
Une petite modif et ça marche aussi avec les dossiers :

set args = wscript.arguments
If args.count=0 then wscript.quit
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
set shell = CreateObject("Shell.Application")
filepath=fso.GetAbsolutePathName(args(0))
If not fso.FileExists(filepath) Then
If not fso.FolderExists(filepath) Then
wscript.echo "Le fichier ou dossier " & filepath & " n'existe pas"
wscript.quit
End If
End If
file = mid(filepath, InstrRev(filepath, "")+1)
folder = left(filepath, InstrRev(filepath, ""))
set folderobj = shell.NameSpace(folder)
set fileObj = folderObj.ParseName(file)
fileObj.InvokeVerb("Properties")
MsgBox fileObj.Name

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Bill Boquet
On ta pas appris a dire bonjour goret malpolitus ???
Avatar
Sam \(au boulot\)
Non non, j'avais parlé de "Mes documents" (le mec pas chiant qui se permet
encore de râler).

Merci pour ce complément.

Au passage, tu as une référence de bouquin pour ce genre de chose :
strutures de contrôles admis en vbs, et surtout... surtout quels objets et
méthodes sont disponibles ?

Sam.


"Jean-Claude BELLAMY" a écrit dans le
message de news:
Sam (au boulot) s'est ainsi
exprimé:

Après essais cela ne fonctionne pas avec "Mes Documents". Par contre
avec un fichier ça fonctionne parfaitement.


Normal! Tu m'avais parlé seulement de "fichier"...
Une petite modif et ça marche aussi avec les dossiers :

set args = wscript.arguments
If args.count=0 then wscript.quit
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
set shell = CreateObject("Shell.Application")
filepath=fso.GetAbsolutePathName(args(0))
If not fso.FileExists(filepath) Then
If not fso.FolderExists(filepath) Then
wscript.echo "Le fichier ou dossier " & filepath & " n'existe pas"
wscript.quit
End If
End If
file = mid(filepath, InstrRev(filepath, "")+1)
folder = left(filepath, InstrRev(filepath, ""))
set folderobj = shell.NameSpace(folder)
set fileObj = folderObj.ParseName(file)
fileObj.InvokeVerb("Properties")
MsgBox fileObj.Name

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*





Avatar
Jean-Claude BELLAMY
Sam (au boulot) s'est ainsi
exprimé:

Au passage, tu as une référence de bouquin pour ce genre de chose :
strutures de contrôles admis en vbs, et surtout... surtout quels
objets et méthodes sont disponibles ?


Un livre assez pointu dans ce domaine est :
"Windows Scripting Secrets"
par Tobias Weltner
en anglais
édité par IDG BOOKS
ISBN : 0-7645-4684-8751

(cf. la liste que je donne ici :
http://www.bellamyjc.org/fr/vbsgeneralites.html#docbooks)

Sinon la référence est la "MSDN Library" (sur CD ou DVD, et non pas sur le
site MSDN de MS, car ces infos n'y figurent pas)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Bill Boquet
On ta pas appris a dire bonjour goret malpolitus ???