Le dicton du jour à l'ouverture de Windows



Principe du script

Un fichier texte de 12 x 31 lignes (31 lignes par mois), contenant un dicton par jour, les dictons étant classés par date (le dicton du jour j et du mois m sera en ligne (m-1)*31+j

Un script, placé dans le répertoire de démarrage de Windows, qui va lire la ligne correspondant au jour d'aujourd'hui et la renvoie dans un MsgBox

Petits raffinements :
- A l'ouverture, le script vérifie s'il est situé dans le répertoire de démarrage. Si ce n'est pas le cas, il s'auto-recopie dans le répertoire de démarrage.
- Plutôt que de stocker les dictons dans un fichier séparé, on les insère en fin du script, chaque ligne étant précédée d'une apostrophe (pour la transformer en commentaire).


Détails du script

1) Le script détermine l'adresse du dossier de démarrage :
Set scrHst = CreateObject("WScript.Shell")
adresse = scrHst.SpecialFolders("StartUp") & "\" & Wscript.Scriptname
Set scrHst = Nothing

L'adresse du répertoire de démarrage est donnée par la propriété SpecialFolders("StartUp") de l'objet WScript.Shell.

2) Le script crée un objet Scripting.FileSystemObject qui va nous permettre de manipuler les fichiers (ouvrir en lecture ou écriture, copier) :
Set fs = CreateObject("Scripting.FileSystemObject")


3) Si le script n'est pas situé dans le dossier de démarrage, il s'y auto-copie en utilisant la méthode copyfile de l'objet Scripting.FileSystemObject.
L'adresse du script en cours est retournée par Wscript.ScriptFullName :
if Wscript.ScriptFullName <> adresse then fs.copyfile Wscript.ScriptFullName,adresse


4) Le fichier contenant les dictons (qui est en même temps le fichier contenant le script en cours d'execution) est ouvert en lecture :
Set fich = fs.OpenTextFile(Wscript.ScriptFullName, 1, False)

(le paramètre 1 signifie ouverture en lecture).

5) le script recherche le début de la liste des dictons (reperé par une ligne contenant des #) et y positionne le curseur :
do while txt<>"'##########"
txt=fich.readline
loop


6) pour trouver la ligne contenant le dicton, il suffit alors de sauter (par skipLine) un nombre de lignes correspondant à 11*mois+jour :
num=1
Do While num<31*(month(date)-1)+day(date)
fich.skipline
num=num+1
Loop

Il suffit de lire la ligne suivante (ReadLine), et de retirer le premier caractère (apostrophe) pour connaitre le dicton du jour :
txt=fich.readline
MsgBox right(txt,len(txt)-1)


7) Ne pas oublier de fermer le fichier et de faire un peu de ménage en fin de script pour libérer la mémoire :
fich.Close
Set fich = Nothing
Set fs = Nothing
Wscript.quit

La dernière ligne, Wscript.quit, permet d'éviter que le script perdre du temps en lisant tous les dictons qui suivent.


Cliquez ici pour voir le texte complet du script
Cliquez ici pour télécharger le script


Remarque : quand vous en aurez marre de lire le dicton du jour, il suffit de supprimer le vbs (dictons.vbs) du répertoire démarrage (rechercher le répertoire par l'explorateur windows ou par le menu démarrer puis rechercher...).