# VBScript

VBScript (diminutif de Microsoft Visual Basic Scripting Edition, créé par Microsoft) est un sous-ensemble de Visual Basic utilisé en tant que langage de script d'usage général. Il est souvent comparé au JScript.
Le 9 octobre 2023, Microsoft a annoncé que VBScript est devenu obsolète et sera retiré des futures versions de Windows.

## Environnements d'utilisation

VBScript peut fonctionner sous de nombreux environnements, notamment :
* Windows Scripting Host (WSH) : il s'agit d'un interpréteur de scripts pour les systèmes Microsoft Windows, permettant d'écrire des scripts afin, par exemple, de faciliter leur administration.
* Windows Internet Explorer : le langage VBScript peut être intégré dans les pages HTML, au même titre que le Javascript afin d'offrir des fonctionnalités interactives.
* Microsoft Internet Information Services (IIS) : il s'agit du serveur web de Microsoft. VBScript est le langage privilégié pour la programmation de pages Active Server Pages (ASP), c'est-à-dire l'écriture de pages web dynamiques gérées du côté serveur.
Le VBScript est souvent utilisé en remplacement des fichiers batch DOS.
Il ne fonctionne pas sur les versions Explorer pour Mac OS.

## Langage interprété

Comme tout langage de script, VBScript est un langage interprété. Il ne nécessite pas de compilation avant d'être exécuté. En revanche, il nécessite que la machine destinée à les exécuter possède un interpréteur, un programme capable de comprendre l'ensemble des instructions présentes dans le programme. Selon l'utilisation les différents "interpréteurs" sont :
* ASP (asp.dll) dans un environnement Web
* wscript.exe dans un environnement Windows
* cscript.exe dans un environnement à ligne de commande
* mshta.exe pour les applications HTML.
Les fichiers VBScript pour Windows Scripting Host ont généralement l'extension de fichier .vbs.
D'autres extensions existent et permettent l'exécution de VBScript tels que :
* VBE : VBScript codé (non éditable).
* WSF : pouvant contenir différents langages en même temps (par exemple VBScript et JScript), des balises XML indiquent le langage de chaque source.
* WSC : fichier source Windows Script Components.
Programme exemple (à mettre dans un fichier 'bonjour.vbs') :
Deuxième programme exemple, celui-ci va enchaîner deux boîtes de message :
Si Windows Scripting Host est correctement installé et activé, le programme s'exécutera au double-clic sur son icône.
La version de VBScript implémentée dans Internet Explorer contient des fonctions très similaires à celles du JavaScript ; il a un interpréteur qui traite le code intégré au HTML, et ne peut créer d'applications indépendantes. Il n'a pratiquement aucune compatibilité avec les autres navigateurs, ainsi la quasi-totalité des webmestres délaissent actuellement le VBScript au profit de JavaScript. Il ne fonctionne par exemple avec aucun des navigateurs proposés sur Mac.
VBScript est aussi implémenté dans Microsoft Outlook comme un langage de script utilisé pour répondre aux événements des formulaires Outlook.
Quelques exemples communs d'applications du VBScript sont la technologie Microsoft Agent et le service Windows Update. Comme ces deux exemples utilisent également la technologie ActiveX, il est obligatoire d'utiliser Internet Explorer pour voir les pages Web utilisant le VBScript.

## Langage de script Internet

VBScript est un langage propre à Microsoft et n'est interprété que par Internet Explorer. De ce fait ce langage n'a pas la portabilité de JavaScript par exemple. VBScript a été implémenté pour la première fois dans Internet Explorer dans la version 3 du navigateur, mais l'absence d'interopérabilité avec Netscape/Mozilla/Opera implique que, quand cela est possible, JavaScript lui soit préféré. Il est abandonné dans IE11 et dans Edge, le nouveau navigateur de Microsoft.

## Mots-clés

* dim (déclare une variable)
* if (si)
* then (alors)
* elseif (sinonsi)
* else (sinon)
* end if (fin de la condition)
* while...wend (boucle : faire jusqu'à ce que...)
* for...next (boucle : faire jusqu'à ce que...)
* do...loop (boucle contrôlée par un while ou un until en début ou en fin)
Il est à noter qu'il n'existe pas de goto

## Opérateurs

* mod (reste de la division entière)
* \ (division entière)
* & ou + (concatène des chaînes)

## Fonctions

* inputbox (boîte de saisie)
* X=inputbox (boîte de saisie améliorée)
* msgbox (boîte de message)
* X=msgbox (boîte de message améliorée)
* cint (convertit un variant en entier)
* copyfile (copie un fichier)
* deletefile (supprime un fichier)
* fileexists (recherche si un fichier existe)

## Utilisation des fonctions

* inputbox (boîte de saisie)
inputbox permet d'apparaitre une boîte de saisie ou l'utilisateur peut taper tout ce qu'il veut dedans
Exemple de code :
* X=inputbox (boîte de saisie améliorée)
X=inputbox est la même chose que InputBox mais on peut ajouter un titre à la boîte de saisie et des caractères déjà mit dans la saisie pour exprimer une recommandation
Exemple de code pour ajouter un titre :
Exemple de code pour ajouter un titre et des caractères déjà mit dans la saisie :

## Syntaxe

La création d'un script VBScript, dans un environnement Windows standard, ne nécessite pas l'installation de logiciel particulier :
* Lancer un éditeur de texte (type Notepad / Bloc-Note)
* Copier les instructions du script (ci-dessous)
* Sauvegarder le fichier avec une extension '.vbs'.
* Ouvrir le fichier pour exécuter le script
Par exemple un petit script pour donner l'heure :
Un autre VBscript qui donne l'heure, et utilise InputBox :

## Langage et objet

VBScript permet de manipuler les objets de Windows. Il permet également de créer des classes dans lesquelles les membres peuvent être soit privés, soit publics. L'héritage n'existe cependant pas en VBScript.

## Virus informatiques et VBScript

Permettant de réaliser pratiquement n'importe quelle opération sous un système Windows en utilisant la technologie ActiveX et Killbit, le VBscript a été utilisé pour la création de nombreux virus informatiques.
De nombreux virus écrits en VBscript apparaissent en l'an 2000. L'un des plus connus est le virus « VBS.LoveLetter » aussi connu sous le nom de « I love you ».

## Éditeurs

De simples éditeurs de texte comme Notepad suffisent pour développer en VBScript.
Néanmoins, il existe de nombreux éditeurs dédiés au VBScript comme :
* VBS Factory
* Microsoft Script Editor (langages de scripts dont VBScript)
* VbsEdit (contient un débogueur intégré)
Des outils permettent d'utiliser le scripting sans connaissance du développement
* GlobalscriptGUI