Privé gedeelde functie SetCursorPos (ByVal X als geheel getal, ByVal Y als geheel getal) als Boolean
Eindfunctie
Privékringen als nieuwe lijst (van rechthoek)
Privé rnd als nieuw Random()
Private Sub MyScreensaver_Load (afzender als object, e als EventArgs) verwerkt MyBase.Load
' Stel de achtergrondkleur in
Me.BackColor =Kleur.Zwart
' Formuliereigenschappen instellen voor volledig scherm
Me.FormBorderStyle =FormBorderStyle.None
Ik.TopMost =Waar
Me.WindowState =FormState.Gemaximaliseerd
'Start timer voor animatie
Timer1.Start()
Einde sub
Private Sub Timer1_Tick (afzender als object, e als EventArgs) verwerkt Timer1.Tick
'Ongeldig maken om verfgebeurtenis te activeren
Ik.Invalidate()
Einde sub
Private Sub MyScreensaver_Paint (afzender als object, e als PaintEventArgs) verwerkt MyBase.Paint
'Bestaande kringen leegmaken
cirkels.Clear()
'Creëer nieuwe willekeurige cirkels
For i As Integer =0 tot 10 ' Pas hier het aantal cirkels aan
Dim size As Integer =rnd.Next(20, 80) 'Pas het bereik van de cirkelgrootte aan
Dim x As Integer =rnd.Next(0, Me.Width - grootte)
Dim y As Integer =rnd.Next(0, Me.Hoogte - grootte)
cirkels.Add(Nieuwe rechthoek(x, y, grootte, grootte))
Volgende
'Teken cirkels
G gebruiken als afbeeldingen =e.Graphics
g.SmoothingMode =SmoothingMode.AntiAlias
Voor elke rect als rechthoek in cirkels
Penseel gebruiken als SolidBrush =New SolidBrush(Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256))) 'Willekeurige kleur
g.FillEllipse(penseel, recht)
Einde gebruik
Volgende
Einde gebruik
Einde sub
Private Sub MyScreensaver_MouseMove (afzender als object, e als MouseEventArgs) verwerkt MyBase.MouseMove
'Afsluiten door muisbeweging
Ik.Sluiten()
Einde sub
Private Sub MyScreensaver_KeyDown (afzender als object, e als KeyEventArgs) verwerkt MyBase.KeyDown
'Afsluiten na indrukken van een toets
Ik.Sluiten()
Einde sub
'Voorkom dat de screensaver wordt geactiveerd terwijl deze actief is
Beveiligde overschrijvingen Sub OnActivated (e als EventArgs)
MijnBase.OnActivated(e)
SetCursorPos(Me.Breedte \ 2, Me.Hoogte \ 2)
Einde sub
Einde klasse
```
Om dit te compileren en mogelijk te implementeren:
1. Maak een nieuw VB.NET Windows Forms App-project.
2. Vervang de standaardformuliercode door de bovenstaande code.
3. Voeg een timerbesturingselement (Timer1) toe aan het formulier.
4. Compileer het project. Hiermee wordt een uitvoerbaar bestand (.exe) gemaakt.
Inzetten als screensaver: Dit is *aanzienlijk* complexer en vereist inzicht in de implementatiemechanismen van screensavers (die variëren per Windows-versie). Normaal gesproken moet u een installatieproject maken (bijvoorbeeld met behulp van het Setup Project van Visual Studio) dat registervermeldingen en bestandsplaatsing afhandelt om uw .exe te integreren als een goede schermbeveiligingsoptie binnen Windows. Het installatieprogramma moet het uitvoerbare bestand registreren bij het Windows-screensaversysteem. Er zijn online tutorials en bronnen beschikbaar om u door het implementatieproces van de screensaver te begeleiden; zoeken naar "VB.NET screensaver-implementatie" zal nuttig zijn. Deze stap valt buiten het bestek van een eenvoudig codevoorbeeld.
Belangrijke overwegingen:
* Foutafhandeling: De meegeleverde code mist een robuuste foutafhandeling. Een productieklare screensaver zou robuustere foutcontroles nodig hebben.
* Prestaties: Voor zeer hoge resoluties of veel cirkels heeft u mogelijk optimalisatietechnieken nodig om een vloeiende framesnelheid te behouden.
* Aanpassing: U kunt het uiterlijk eenvoudig wijzigen door de cirkelgrootte, kleur en nummer aan te passen. Er kunnen ook meer geavanceerde grafische afbeeldingen worden geïmplementeerd.
Houd er rekening mee dat het distribueren van een screensaver een zorgvuldige afweging van licenties en mogelijke beveiligingsproblemen vereist. Test uw screensaver grondig voordat u deze distribueert.