Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

WshShell

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

Méthodes de l'objet WshShell

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 :
  • 0 SUCCESS (réussite)
  • 1 ERROR (erreur)
  • 2 WARNING (attention)
  • 4 INFORMATION (information)
  • 8 AUDIT_SUCCESS (audit réussi)
  • 16 AUDIT_FAILURE (audit échoué)
Enfin, le dernier argument, facultatif, permet, sous les systèmes NT/2000/XP, de définir le système dans lequel l'événement doit être consigné.
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) :
  • HKEY_CLASSES_ROOT (HKCR)
  • HKEY_CURRENT_USER (HKCU)
  • HKEY_LOCAL_MACHINE (HKLM)
  • HKEY_USERS (HKU)
  • HKEY_CURRENT_CONFIG (HKCC)
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 :
  • REG_SZ, pour une chaîne de caractères
  • REG_EXPAND_SZ, pour une chaîne de caractères
  • REG_DWORD, pour un entier
  • REG_BINARY, pour un booléen
,Si un autre type de données est transmis, RegWrite renvoie E_INVALIDARG.
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 :
  • 0: Masque la fenêtre en cours et active une nouvelle fenêtre.
  • 1: La fenêtre est activée et affichée. Si cette dernière est réduite ou agrandie, le système restaure sa taille et sa position d'origine. Il s'agit du drapeau à utiliser lors du premier appel d'une application.
  • 2: La fenêtre est activée et affichée sous forme réduite.
  • 3: La fenêtre est activée et affichée sous sa forme agrandie.
  • 4: La fenêtre est affichée à sa taille et à son emplacement précédents.
  • 5: La fenêtre est activée et affichée à sa taille et son emplacement actuels.
  • 6: La fenêtre est réduite et la fenêtre de niveau supérieur suivant (ordre Z) est affichée.
  • 7: La fenêtre est affichée sous sa forme réduite. La fenêtre active reste active.
  • 8: La fenêtre est affichée sous son état actuel. La fenêtre active reste active.
  • 9 La fenêtre est activée et affichée. Si cette dernière est réduite ou agrandie, le système restaure sa taille et son emplacement d'origine.
  • 10: La fenêtre est affichée selon l'état du programme qui a lancé l'application.
Si l'argument facultatif bWaitOnReturn est défini sur False, la méthode Run renvoie le code 0 et n'attend pas la fin du traitement, sinon, la méthode Run attend la fin du traitement et renvoie tout code d'erreur renvoyé par l'application. L'exemple suivant ouvre le script en cours dans une instance du bloc-note :
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")

Propriétés de l'objet WScript

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.

Quelques exemples d'utilisation

Propriétés 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.

Ajout/Suppression de programmes

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')

Assistant d'ajout d'imprimante

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")


Dernière modification le mardi 14 octobre 2008 à 17:40:32.Ce document intitulé « WSH - Objet WshShell » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
WSH - Objet WScript WScript L'objet WScript est l'objet parent du modèle WSH. Il permet de gérer la création (instanciation) et la destruction des objets du modèle WSH. Voici un récapitulatif des propriétés et méthodes de l'objet WScript : Objet... www.commentcamarche.net/contents/vbscript/vbs-wscript.php3
Objets WSH (Windows Scripting Host) WSH Windows Scripting Host (WSH) est un hôte de scripts pour les systèmes Microsoft Windows permettant d'interprêter des scripts afin d'automatiser l'administration du système. WSH permet d'interprêter nativement les scripts écrits en JScript ou... www.commentcamarche.net/contents/vbscript/vbs-wsh.php3
Javascript - L'objet String Les particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation... www.commentcamarche.net/contents/javascript/jsstring.php3
Découper un objet de l'arrière planParfois on peut vouloir découper un objet de son arrière-plan, par exemple un visage, un fruit posé sur une table, etc. L'outil habituellement utilisé est le lasso, mais l'opération est délicate. On peut également utiliser des calques, mais dans... www.commentcamarche.net/faq/sujet-10311-decouper-un-objet-de-l-arriere-plan
VB et erreur 91. Variable Objet...non definie (Résolu)Bonjour , j' essaye d' apprendre le vb avec des exos trouvés sur le net. L' un d' eux porte sur les bases de données access. Mais , j' ai une erreur que je n' arrive pas a solutionner. Error 91 : Variable objet ou variable bloc WITH non- definie Le... www.commentcamarche.net/forum/affich-1805330-vb-et-erreur-91-variable-objet-non-definie
Exercices corrigés en java orienté objet (Résolu)Bonjour à tous; je suis débutante en java orienté objet et je cherche des exercices corrigés, alors si quelqu'un peut m'aider d'en avoir je serai très reconnaissante; merci d'avance à tous qui vont m'aider www.commentcamarche.net/forum/affich-9071226-exercices-corriges-en-java-oriente-objet
Problème de sélection d'objet avec AutoCad (Résolu)Bonjour, Je n'arrive plus a sélectionné plus de 1 objet sur l'AutoCad de mon travail (version 2006). Je pense que ce soucis est due a une fausse manipulation mais je ne trouve pas de solution, j'utilise autocad avec TopoLisps en extention. Merci... www.commentcamarche.net/forum/affich-10832256-probleme-de-selection-d-objet-avec-autocad
Javascript - L'objet windowLes particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de... www.commentcamarche.net/contents/javascript/jswindow.php3
Javascript - L'objet RegExpLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des... www.commentcamarche.net/contents/javascript/jsregexp.php3
Javascript - L'objet DateLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La... www.commentcamarche.net/contents/javascript/jsdate.php3