Explication de l'ecran de veille de visual basic

Description

J'ai repris l'écran de veille de VB, et je l'ai commenté pour permettre aux débutants de comprendre le fonctionnement.
Pour ceux qui ne souhaitent pas télécharger la source, creez un form avec comme propriétés :
BorderStyle >> 0 - None
WindowsState >> 2 - Maximized
Insérez un timer (Timer1) avec comme propriétés :
Enabled > False
Interval > 1
Insérez ensuite dans le code du form ceci :

Source / Exemple :


Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long
Dim fin As Boolean

Private Sub Form_Click()
'Désactive l'écran de veille en cas de clic :
fin = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'Désactive l'écran de veille en cas de saisie :
fin = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Désactive l'écran de veille en cas de déplacement de la souris :
fin = True
End Sub

Private Sub Form_Paint()
Dim sc As Long
'Effacer le pointeur de souris :
sc = ShowCursor(False)
'Initialise le générateur de nombres pseudo-aléatoires :
Randomize
'Définit le système de coordonnées pour l'affichage dans l'objet Form.
'Ici, l'angle supérieur gauche a pour coordonnées 0,0 et l'angle inférieur droit, 1,1 :
Scale (0, 0)-(1, 1)
'La variable booléenne fin est utilisé comme indicateur de fin d'affichage de l'écran de veille.
'Ici, elle est initialisée à False, ce qui signifie que l'affichage de l'écran de veille est validée :
fin = False
'Une boucle Do Loop est utilisée pour afficher de façon répétitive des lignes droites de longueur
'et de couleur aléatoires. La boucle prend fin lorsque la variable fin vaut True :
Do
'Définit de façon aléatoire la couleur du tracé :
ForeColor = QBColor(Int(Rnd * 16))
'Effectue le tracé d'un segment de droite aléatoire en utilisant la couleur ForeColor :
Line (Rnd, Rnd)-(Rnd, Rnd)
'Autorise le traitement des messages qui pourraient parvenir à l'application pendant la boucle :
DoEvents
Loop Until fin
'Restaurer le pointeur de souris :
sc = ShowCursor(True)
'Cette instruction valide le timer. Ce dernier était désactivé par défaut. En initialisant
'à True sa propriété Enabled, la procédure Timer1_Timer() sera activée au bout de Timer1.Interval
'millisecondes (ici, une milliseconde) :
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
'Cette instruction met fin au programme une milliseconde après la sortie de la boucle.
End
End Sub

'Lorsqu'un écran de veille est activé, un paramètre est transmis sur la ligne de commande.
'Ce paramètre peut prendre la valeur /s (exécution de l'écran de veille) :
Public Sub main()
Dim s As String
Dim param As String
'Si l'économiseur d'écran est déjà en action (App.PrevInstance = True), l'application est déchargée (Unload Me)
'Et la procédure main() est terminée (Exit Sub). Cela évite l'activation de l'économiseur d'écran une nouvelle fois
'(Ce qui pourrait en résulter le plantage de l'ordinateur)
If App.PrevInstance Then
Unload Me
Exit Sub
End If
'Les éventuels espaces de début et de fin sont supprimés dans le paramètre passé à l'application (Trim())
'et la chaîne résultante est convertie en caractères minuscules (LCase()) :
s = LCase(Trim(Command))
'Le paramètre passé par le système à l'écran de veille se trouve dans les deux premiers
'caractères. Ces caractères sont extraits de la chaîne s à l'aide de la fonction Left() :
param = Left(s, 2)
'Si le paramètre est /s, l'écran de veille doit être activé. La feuille Form1 est chargée
'et affichée et la procédure prend fin :
If param = "/s" Then
Load Form1
Form1.Show
Exit Sub
'Les autres paramètres ne sont pas pris en compte :
Else
Exit Sub
End If
End Sub

Conclusion :


Voila bonne lecture !
Http://ICIoBRa.Free.Fr

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.