Fonction partagée privée SetCursorPos (ByVal X comme entier, ByVal Y comme entier) comme booléen
Fonction de fin
Cercles privés comme nouvelle liste (de rectangle)
Rnd privé comme nouveau aléatoire ()
Le sous-privé MyScreensaver_Load (expéditeur en tant qu'objet, et en tant qu'EventArgs) gère MyBase.Load
' Définir la couleur d'arrière-plan
Me.BackColor =Couleur.Noir
' Définir les propriétés du formulaire pour le plein écran
Me.FormBorderStyle =FormBorderStyle.None
Moi.TopMost =Vrai
Me.WindowState =FormState.Maximized
'Démarrer le minuteur pour l'animation
Minuterie1.Démarrer()
Fin du sous-marin
Le sous-privé Timer1_Tick (expéditeur en tant qu'objet, et en tant qu'EventArgs) gère Timer1.Tick
'Invalider pour déclencher l'événement Paint
Moi.Invalider()
Fin du sous-marin
Le sous-privé MyScreensaver_Paint (expéditeur en tant qu'objet, et en tant que PaintEventArgs) gère MyBase.Paint
'Effacer les cercles existants
cercles.Clear()
'Créer de nouveaux cercles aléatoires
Pour i As Integer =0 To 10 ' Ajustez le nombre de cercles ici
Dim size As Integer =rnd.Next(20, 80) 'Ajuster la plage de taille du cercle
Dim x As Integer =rnd.Next(0, Me.Width - taille)
Dim y As Integer =rnd.Next(0, Me.Height - taille)
circles.Add (Nouveau rectangle (x, y, taille, taille))
Suivant
'Dessiner des cercles
Utilisation de g comme graphiques =e.Graphics
g.SmoothingMode =SmoothingMode.AntiAlias
Pour chaque rect comme rectangle en cercles
Utilisation du pinceau As SolidBrush =New SolidBrush(Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256))) 'Couleur aléatoire
g.FillEllipse (pinceau, rect)
Fin de l'utilisation
Suivant
Fin de l'utilisation
Fin du sous-marin
Le sous-privé MyScreensaver_MouseMove (expéditeur en tant qu'objet, et en tant que MouseEventArgs) gère MyBase.MouseMove
'Quitter en bougeant la souris
Moi.Fermer()
Fin du sous-marin
Le sous-privé MyScreensaver_KeyDown (expéditeur en tant qu'objet, et en tant que KeyEventArgs) gère MyBase.KeyDown
'Quitter en appuyant sur une touche
Moi.Fermer()
Fin du sous-marin
'Empêcher l'économiseur d'écran de s'activer pendant son exécution
Remplacements protégés Sub OnActivated (e As EventArgs)
MaBase.OnActivated(e)
SetCursorPos(Me.Largeur \ 2, Me.Hauteur \ 2)
Fin du sous-marin
Fin du cours
```
Pour compiler et éventuellement déployer ceci :
1. Créez un nouveau projet d'application Windows Forms VB.NET.
2. Remplacez le code du formulaire par défaut par le code ci-dessus.
3. Ajoutez un contrôle Timer (Timer1) au formulaire.
4. Compilez le projet. Cela créera un fichier exécutable (.exe).
Pour déployer en tant qu'économiseur d'écran : Ceci est *significativement* plus complexe et nécessite la compréhension des mécanismes de déploiement des économiseurs d'écran (qui varient selon les versions de Windows). Vous devrez généralement créer un projet d'installation (par exemple, à l'aide du projet d'installation de Visual Studio) qui gère les entrées de registre et le placement des fichiers pour intégrer votre .exe en tant qu'option d'économiseur d'écran appropriée dans Windows. Le programme d'installation doit enregistrer l'exécutable auprès du système d'économiseur d'écran Windows. Des didacticiels et des ressources sont disponibles en ligne pour vous guider tout au long du processus de déploiement de l'économiseur d'écran ; la recherche de "Déploiement de l'économiseur d'écran VB.NET" sera utile. Cette étape dépasse le cadre d’un simple exemple de code.
Considérations importantes :
* Gestion des erreurs : Le code fourni ne dispose pas d'une gestion robuste des erreurs. Un économiseur d'écran prêt pour la production nécessiterait des contrôles d'erreur plus robustes.
* Performances : Pour les très hautes résolutions ou pour de nombreux cercles, vous aurez peut-être besoin de techniques d'optimisation pour maintenir une fréquence d'images fluide.
* Personnalisation : Vous pouvez facilement modifier l’apparence en modifiant la taille, la couleur et le numéro du cercle. Des graphismes plus sophistiqués pourraient également être implémentés.
N'oubliez pas que la distribution d'un économiseur d'écran nécessite un examen attentif des licences et des problèmes de sécurité potentiels. Testez minutieusement votre économiseur d'écran avant de le distribuer.