L'objet WshShell contient des informations sur l'environnement d'exécution, ainsi que des méthodes permettant de gérer l'exécution locale d'applications, de manipuler la base de registre, d'accéder aux ressources systèmes (base de registre, variables d'environnement, répertoires du système).
L'objet WshShell est obtenu en créant une instance de l'objet COM identifié par le progID «WScript.WshShell« :
Set WshShell = CreateObject("WScript.WshShell")
Voici un récapitulatif des propriétés et méthodes de l'objet WshShell :
| Objet WshShell | ||
|---|---|---|
| Collections | Propriétés | Méthodes |
| Environment
SpecialFolders |
CreateShortCut
ExpandEnvironmentScrings LogEvent Popup RegDelete RegRead RegWrite Run |
|
Les méthodes de l'objet WshShell sont les suivantes :
| Méthode | Description |
|---|---|
| AppActivate([title]) | Rend la fenêtre d'application active. Le paramètre title
optionnel permet de préciser le titre de la fenêtre à activer,
ou bien son ID.
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("calc.exe")
WScript.Sleep 200
WshShell.AppActivate "Calculatrice" |
| CreateShortCut(strPathName) | Crée un et retourne un objet WshShortCut
définissant un raccourci à l'emplacement défini en paramètre
(strPathName).
strDesktop = WshShell.SpecialFolders("Desktop")
set oLink = WshShell.CreateShortcut(strDesktop & "\raccourci.lnk") |
| ExpandEnvironmentStrings(strString) | Renvoie une chaîne correspondant à une variable d'environnement
à développer, dont le nom de variable, entouré par le caractère % est précisé en argument.
WScript.Echo "WinDir :" & WshShell.ExpandEnvironmentStrings("%WinDir%") |
| Logevent(intType, strMessage [, strTarget]) | Permet de consigner un événements dans le journal d'événements
du système. Le premier argument est un entier représentant le type de l'événement,
le second est une chaîne indiquant le texte à consigner. Les types
d'événements sont les suivants :
WScript.Echo "WinDir :" & WshShell.ExpandEnvironmentStrings("%WinDir%")
|
| PopUp(strText,[natSecondsToWait,[,strTitle,[natType]]] ) | Affiche une fenêtre contextuelle contenant le texte à affiché, défini en argument (strText). L'argument optionnel natSecondsToWait, lorsqu'il est strictement positif, défini le nombre de secondes au-delà desquelles la fenêtre est automatiquement fermée. L'argument facultatif strTitle permet de définir le titre à afficher dans la barre de titre. Enfin, le dernier argument optionnel défini les boutons à afficher dans la boîte de dialogue, définis par les constantes de boîtes de dialogue. |
| RegDelete(strName) | Supprime de la base de registre la clé ou la valeur passée en argument (strName).
Si strName se termine par une barre oblique inverse, la clé sera supprimée, sinon
seule la valeur sera supprimée. L'argument strName doit nécessairement commencer par
une des chaînes suivante ou sa forme abrégée (entre parenthèses) :
|
| RegRead(strName) | Renvoie la valeur ou la clé du registre dont le nom est passé en argument.
Si strName se termine par une barre oblique inverse, la clé sera renvoyée, sinon la valeur sera renvoyée.
Comme pour RegDelete, la chaîne strName doit commencer par une des chaînes ci-dessus.
WScript.Echo WshShell.RegRead("HKCU\MyKey\")'Renvoie la clef
WScript.Echo WshShell.RegRead("HKCU\MyKey") 'Renvoi la valeur
|
| RegRead(strName) | Renvoie la valeur ou la clé du registre dont le nom est passé en argument.
Si strName se termine par une barre oblique inverse, la clé sera renvoyée, sinon la valeur sera renvoyée.
Comme pour RegDelete, la chaîne strName doit commencer par une des chaînes ci-dessus.
WScript.Echo WshShell.RegRead("HKCU\MyKey\")'Renvoie la clef
WScript.Echo WshShell.RegRead("HKCU\MyKey") 'Renvoi la valeur |
| RegWrite(strName,strValue[,strType]) | Définit la clé du registre dont le nom est spécifié en argument (strName)
et lui affecte la valeur passée en argument (strValue).
Si strName se termine par une barre oblique inverse, RegWrite enregistrera
strValue en tant que clé, sinon elle sera enregistrée en tant
que valeur.
Comme pour RegDelete, la chaîne strName doit commencer par une des chaînes ci-dessus.
Les valeurs pour l'argument facultatif strType sont les suivantes :
WScript.Echo WshShell.Write("HKCU\MyKey\","My Value")'
WScript.Echo WshShell.RegRead("HKCU\MyKey") 'Renvoi la valeur |
| Run([intWindowStyle], [bWaitOnReturn]) | La commande Run exécute la commande passée en argument (strCommand).
L'argument facultatif intWindowStyle permet de définir la manière
dont la fenêtre est ouverte et peut prendre une des valeurs suivantes :
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("%windir%\notepad" & WScript.ScriptFullName, 1, TRUE)
|
| SendKeys(strKey) | Simule l'appui sur des touches du clavier et envoie ces entrées à l'application concernée.
WshShell.SetDefaultPrinter("\\Serveur\Imprimante")
|
Les propriétés de l'objet WshShell sont les suivantes :
| Propriété | Description |
|---|---|
| Environment | Renvoie une collection d'objets WshEnvironment représentant les variables d'environnement du système. |
| SpecialFolders | Renvoie une collection d'objets WshEnvironment représentant les variables d'environnement du système. |
Pour ouvrir la boîte de dialogue du panneau de configuration, il suffit d'utiliser la méthode Run de l'objet WshShell comme suit :
WshShell = CreateObject('WScript.Shell')
WshShell.Run('Control.exe Sysdm.cpl,,0')
Le dernier paramètre (0 dans l'exemple) permet de préciser l'index de l'onglet ayant
le focus à l'ouverture.
Pour ouvrir la boîte de dialogue d'ajout/suppression de programmes, il suffit d'utiliser la méthode Run de l'objet WshShell comme suit :
WshShell = CreateObject('WScript.Shell')
WshShell.Run('Control.exe AppWiz.cpl,,1')
Pour ouvrir la boîte de dialogue de l'assistant d'ajout d'imprimante, il suffit d'utiliser la méthode Run de l'objet WshShell comme suit :
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run("rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter")
| 10/02 21h37 | Erreur WSHShell 800A03EA | 2 |