Economiseur d'écran.

 

1 - Créer le projet VB5

Avec VB5 créer un nouveau projet "standard EXE".

Ajouter la form (feuille) standard qui fera office de fond d'écran et un contrôle Timer avec les propriétés suivantes :

Begin VB.Form Economiseur

BackColor = &H00000000&
BorderStyle = 0 'None
Caption = "Form1"
ClientHeight = 9420
ClientLeft = 0
ClientTop = 0
ClientWidth = 13275
LinkTopic = "Form1"
ScaleHeight = 9420
ScaleWidth = 13275
ShowInTaskbar = 0 'False
StartUpPosition = 3 'Windows Default
WindowState = 2 'Maximized

Begin VB.Timer tmrExitNotify

Enabled = 0 'False
Interval = 1
Left = 600
Top = 3840

Exemple1 : Les propiétés de la feuille et du Timer.

 

Entrer le code principal suivant (associé à la feuille).

Option Explicit
' Fonction API pour masquer le curseur
Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long
'
Dim boolQuitter As Boolean

Private Sub Form_Click()
' Click souris = quitter

boolQuitter = True

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
' Touche enfoncée = quitter

boolQuitter = True

End Sub

Private Sub Form_Load()
' Programme principal

Dim lngVoirCurseur As Long
Dim intXPos, intYPos, intTaille


If App.PrevInstance = True Then

Unload Me
Exit Sub

End If

lngVoirCurseur = ShowCursor(False)

Select Case UCase$(Left$(Command$, 2))

Case "/P" ' Preview (pas utilisé)

Unload Me
Exit Sub

Case "/C" ' Voir les paramètres

lngVoirCurseur = ShowCursor(True)
Setup.Show vbModal
lngVoirCurseur = ShowCursor(False)
Unload Me
Exit Sub


Case "/A"
' Fixer un mot de passe

lngVoirCurseur = ShowCursor(True)
MsgBox "Mot de passe non disponible sur cet ecran de veille"
lngVoirCurseur = ShowCursor(False)
Unload Me
Exit Sub

Case "/S" ' Demarrer l animation

Show
Randomize
intTaille = Val(GetSetting("MonEcran", "Confetti", "Taille", "50"))
' Lire la base de registre
ScaleMode = 3 ' Fixer ScaleMode à pixels.
ForeColor = QBColor(4)
' Fixer foreground à rouge.
Cls ' effacer la form.

Do
' boucler sur les confetti

DrawWidth = Rnd * intTaille + 1 ' Fixer la taille du confetti
intXPos = Rnd * ScaleWidth
' Determiner la position horizontal.
intYPos = Rnd * ScaleHeight
' Determiner la position vertical .
PSet (intXPos, intYPos), QBColor(Rnd * 15)
' Dessiner le confetti.
DoEvents

Loop Until boolQuitter = True
tmrExitNotify.Enabled = True

Case Else

Unload Me
Exit Sub

End Select
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
' Souris déplacée = quitter

Static intXancien, intYancien
Dim sglXcourant As Single
Dim sglYcourant As Single
sglXcourant = x
sglYcourant = Y

If intXancien = 0 And intYancien = 0 Then

intXancien = sglXcourant
intYancien = sglYcourant
Exit Sub

End If

If sglXcourant <> intXancien Or sglYcourant <> intYancien Then

boolQuitter = True

End If

End Sub

Private Sub Form_Unload(Cancel As Integer)
' en quittant afficher le curseur de nouveau

Dim lngVoirCurseur As Long
lngVoirCurseur = ShowCursor(True)

End Sub

Private Sub tmrExitNotify_Timer()

Unload Me

End Sub

Exemple1 : Le fichier source VB5.

 

Puis créer une nouvelle form (feuille) dans le même projet (destinée à prendre en charge le paramètrage de l'économiseur en outre la taille maximum des confettis !!!) avec les propriétés suivantes :

Begin VB.Form Setup

Caption = "Setup"
ClientHeight = 1890
ClientLeft = 60
ClientTop = 345
ClientWidth = 4485
LinkTopic = "Form2"
ScaleHeight = 1890
ScaleWidth = 4485
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton cmdOK
Caption = "OK"
Height = 375
Left = 3150
TabIndex = 2
Top = 1260
Width = 1095

Begin VB.TextBox txtTexte

Height = 285
Left = 3150
TabIndex = 1
Top = 720
Width = 1110

Begin VB.Label Label1

Caption = "Taille maximum des confettis 1 - 500"
Height = 255
Left = 240
TabIndex = 0
Top = 720
Width = 2835

Exemple 1 : Les proprétés de la form (feuille) paramètres

Saisissez le code associé suivant :

Option Explicit

Private Sub cmdOK_Click()

If Val(txtTexte.Text) > 500 Then Exit Sub
If Val(txtTexte.Text) < 1 Then Exit Sub
SaveSetting "MonEcran", "Confetti", "Taille", txtTexte.Text
' ecrire dans la base de registre
Unload Me

End Sub

Private Sub Form_Load()

Left = (Screen.Width - Width) \ 2
Top = (Screen.Height - Height) \ 2
txtTexte.Text = GetSetting("MonEcran", "Confetti", "Taille", "50")
' Lire la base de registre

End Sub

 

2 - Compiler le programme et le tester.

Avant de lancer le programme faites une sauvegarde !!!

 

Avec le menu Fichier sélectionner Make (compiler) et choisisser un nom pour votre économiseur, mais avec une extension .scr au lieu de .exe.

placer le fichier obtenu (????.scr) dans le répertoire Windows (WinNt, Windows, Win, ...).

Demarrer le panneau de configuration, ouvrir affichage, et selectionner l'onglet ecran de veille. Selectionner votre économiseur dans la liste, et essayer Paramètres et apperçu.