Inleiding
In deze tutorial wordt uitgelegd hoe je een simpele login en logout moet maken met Microsoft Visual Basic 6.
Alle broncodes zijn te downloaden.
Ook het gecompilde programma kan je downloaden.
Links staat het toolvenster met alle beschikbare objecten.
In het midden hebben we de werkplaats en rechts staan (van boven naar onder) het project-venster, het eigenschappen-venster en het lay-out venster.
enkel het eigenschappen-venster zullen we nodig hebben. Objecten plaatsen (login):
First things first.
We kunnen nog niet beginnen scripten als er geen objecten zijn.
Klik in de werkbalk op "file => new project", selecteer in de popup "Standard EXE" en klik op ok.
Je zal zien dat er al een venster verschijnt.
Dit venster gaan we nu eerst de juiste afmetingen en eigenschappen geven.
Klik het venster aan en ga naar het eigenschappen-venster.
geef daarin alle waarden in zoals in volgend voorbeeld:
BorderStyle: 3 - Fixed Dialog
Dit zorgt ervoor dat er enkel een sluitknop komt te staan en de grootte van het venster niet aangepast mag worden.
Caption: Login
Dit is de tekst die in de titel van het programma komt te staan.
(Misc) Name: login
Dit is de naam waarmee het object in kwestie aangesproken wordt.
(Misc) ShowInTaskbar: False
Hiermee kun je beslissen of het venster in de taakbalk moet weergegeven worden of juist niet. (note: een programma bestaat uit meerdere vensters)
(Misc) WindowState: 0 - Normal
Beslist of het venster geladen moet worden normale grootte, geminimaliseerd of gemaximaliseerd.
(position) Height: 2250
De hoogte van het venster.
(position) Moveable: True
Bepaalt of de gebruiker het venster mag verplaatsen.
(position) startUpPosition: 2 - CenterScreen
Dit bepaalt waar het venster op het scherm geladen moet worden.
(position) Width: 4500
De breedte van het venster.
Nu zou het er zo moeten uitzien:
Dan gaan we de tekstlabels plaatsen.
Selecteer links in het tool-menu de teksttool.()
Klik en sleep om het tekstlabel te plaatsen.
Eigenschappen van Label 1 en Label 2:
(appearance) Caption: gebruiker
De tekst die er moet staan.
Als de tekstlabels geplaatst zijn, kunnen we verder gaan met de twee tekstvelden. (de gebruikersnaam en het wachtwoord)
Selecteer de tool voor invoervelden () en plaats het d.m.v. te klikken en te slepen totdat het veld de gepaste grootte heeft.
Eigenschappen van gebruikersnaam- en wachtwoord-veld:
(Appearance) BorderStyle: 1 - Fixed Single
Beslist of het invoerveld een 2D- of 3D-opmaak heeft.
(Misc) Name: Gebruikersnaam
De naam waarmee het invoerveld aangesproken wordt.
(Misc) PasswordChar: *
Door welk teken de input veranderd moet worden (Wachtwoordveld)
Het enige wat ons nu nog rest voor het formulier is de ok-knop.
Zoals vorige keer: klik en sleep om het object te plaatsen maar deze keer met de button-tool. ()
Eigenschappen van de knop:
(Appearance) Caption: OK
De tekst op de knop.
(Misc) Name: OK
De naam waarmee de knop aangesproken wordt.
Resultaat:
Objecten plaatsen (logout):
We maken eerst een nieuw venster aan voor ons programma.
Hierin komt dan alle private data te staan.
Ga naar de werkbalk en klik op de pijl naast het icoontje voor een nieuw formulier en klik dan op "Form".
Je zal zien dat er een nieuw formulier verschijnt in het toolvenster rechtsboven.
Dubbelklik in dat toolvenster op het pas toegevoegde formulier/venster. (dat is normaal "Form1" genaamd)
Het nieuwe venster/formulier wordt getoond.
BorderStyle: 1 - Fixed Single
Dit zorgt ervoor dat er enkel een sluitknop komt te staan en de grootte van het venster niet aangepast mag worden.
Caption: Privaat
Dit is de tekst die in de titel van het programma komt te staan.
(Misc) Name: hoofdvenster
Dit is de naam waarmee het object in kwestie aangesproken wordt.
(Misc) ShowInTaskbar: True
Hiermee kun je beslissen of het venster in de taakbalk moet weergegeven worden of juist niet. (note: een programma bestaat uit meerdere vensters)
(Misc) WindowState: 0 - Normal
Beslist of het venster geladen moet worden normale grootte, geminimaliseerd of gemaximaliseerd.
(position) startUpPosition: 2 - CenterScreen
Dit bepaalt waar het venster op het scherm geladen moet worden.
Als je deze login namaakt kan je in het 2e formulier (hoofdvenster) onmiddellijk je eigen data plaatsen zonder direct scripts te moeten toevoegen.
Om je verder op weg te helpen is er ook een logout-knop toegevoegd aan het programma.
Plaats een nieuwe knop op dezelfde manier als de ok-knop.
Alle eigenschappen van de logout-knop vind je hieronder:
(Appearance) Caption: Uitloggen
De tekst op de knop.
(Misc) Name: Uitloggen
De naam waarmee de knop aangesproken wordt.
Scripts toevoegen
Je opent het script-venster door rechts te klikken op het venster/formulier dat je nodig hebt en dan te klikken op "view code".
Doe dit bij het login-formulier.
Je krijgt nu het volgende te zien:
Voer nu deze code in:
1 2 3 4 5 6 7 8 9 10
Private Sub ok_Click()
If gebruikersnaam = "test" And wachtwoord = "pass" Then
Me.Hide
hoofdvenster.Show
Else
gebruikersnaam = ""
wachtwoord = ""
MsgBox "Foute login !", vbCritical, "Error"
End If
End Sub
Ontleding script:
Private Sub ok_Click()
Hierop volgen de scripts na het uitvoeren van de functie, in dit geval click op object genaamd "ok"
If gebruikersnaam = "test" And wachtwoord = "pass" Then
Als de ingevoerde gebruikersnaam "test" is en het wachtwoord "pass", voer dan volgende scripts uit totaan Else of END IF
Me.Hide
hoofdvenster.Show
Het actieve venster verbergen en het venster met de naam "hoofdvenster" tonen in het ingestelde formaat (WindowState: 0 - Normal)
Else
if...else constructor; else = "anders"
gebruikersnaam = ""
wachtwoord = ""
De ingevoerde gebruikersnaam en het ingevoerde wachtwoord wissen
MsgBox "Foute login !", vbCritical, "Error"
Een alert weergeven met als titel "Error", als tekst "Foute login !" en als afbeelding een stopteken.
End If
End Sub
Eerst de if...else constructor beeïndigen en dan de hele functie (click)
Ga nu terug naar het project-venster en klik rechts op het private deel oftewel het "hoofdvenster" zoals de naam ervan luidt en dan weer op "view code"
Opnieuw krijg je een leeg codevenster te zien.
Geef daarin het volgende script in:
1 2 3 4
Private Sub uitloggen_Click()
Unload hoofdvenster
login.Show
End Sub
Ontleding script:
Private Sub uitloggen_Click()
Hierop volgen de scripts na het uitvoeren van de functie, in dit geval click op object genaamd "uitloggen"
Unload hoofdvenster
login.Show
Het hoofdvenster (dus het private deel van het programma) sluiten en verwijderen uit het geheugen en de login terug tonen.
End Sub
De scripts na uitloggen_click() afsluiten
Zie je iets ontbreken? De sluitknop ! Als de sluitknop aan geen enkel script verbonden is zal het programma altijd geladen blijven totdat men het sluit via Windows taskmanager.
Om dit te voorkomen moet je in alle vensters van het programma (hier zijn het er twee, namelijk "login" en "hoofdvenster") het volgende script plaatsen:
1 2 3 4
Private Sub Form_Unload(Cancel As Integer)
Unload hoofdvenster
Unload login
End Sub
Ontleding script:
Private Sub Form_Unload(Cancel As Integer)
Hierop volgen de scripts na het uitvoeren van de functie, in dit geval Unload en heeft effect op het hele venster (Form)
Unload hoofdvenster
Unload login
Verwijder deze twee vensters uit het geheugen
End Sub
De scripts na Form_Unload(Cancel As Integer) afsluiten
Het kraken van de login
Allereerst, waarom zet ik nu bij deze tutorial hoe je de login kunt achterhalen?
Simpel, Om te tonen hoe "veilig" een programma soms kan zijn.
Met Ollydebug kan je de login vinden. (zie afbeelding)
Beveiliging: Net zoals in PHP kun je MD5/SHA1 hashes van de ingevoerde strings maken. Hoe dit moet en welke andere mogelijkheden er zijn zal ik misschien later uitleggen in een volgende tutorial. Cracker