VBS vraagje

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik wil een programmatje maken wat door blijf gaan met popups tot je het juiste wachtwoord in voert
Do Until i=678
i=inputbox ("Wachtwoord nodig om dit programma af te sluiten")
Msgbox "Wrong password, acces denied!!!"
Loop
aleen heb ik 2 probleempjes...

1. als ik het opstart en bij het veld ipv cijfers letters invul dan geeft het daarna aan Wrong pass enz, daarna krijg ik een melding van windows script host dat "i" niet overeenkomt terwijl ik dan wil dat het wachtwoordveld weer opnieuw terug komt.

2. ik wil ervoor zorgen dat als ik het goede wachtwoord heb ingevuld dat het programma dan afsluit, zonder melding dat het wachtwoord onjuist is. en als het wachtwoord wel fout is dat hij opnieuw om een wachtwoord vraagt.

Als iemand weet hoe mijn code wel moet zijn dan zou ik dat graag willen horen!!

Bedankt voor de moeitte

Acties:
  • 0 Henk 'm!

  • Mad Marty
  • Registratie: Juni 2003
  • Laatst online: 00:22

Mad Marty

Je bent slimmer als je denkt!

Ik heb geen verstand van VBS, maar toch:

1. Dat lijkt me logisch, je vergelijkt een int met een string (twee verschillende typen variabelen dus), of heb je beide als string gedeclareerd? (gebruikt VBS iets van "Dim i As Int" oid?)

2. Lijkt me ook vrij logisch, want hij checkt pas weer of i en 678 gelijk zijn bij het begin van de Do.

Kortom, je moet even wat verder nadenken over hoe je dit beter kunt aanpakken. In pseudocode zou ik eerder iets als dit doen:

code:
1
2
3
4
5
6
7
8
9
10
pass = xxx

While right_pass = 0
 i = inputbox(blabla)
 if i == pass
  right_pass = 1
 else
  MsgBox("wrong password!")
 end
Wend

[ Voor 3% gewijzigd door Mad Marty op 31-07-2009 15:39 ]

Rail Away!


Acties:
  • 0 Henk 'm!

  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

1. Je kan je input heel eenvoudig controleren via de isNumber() functie en daarna casten met CInt(). Maar waarom controleer je niet gewoon 2 strings?
Zowiezo raad ik je aan om option explicit aan te zetten en je variabelen een datatype te geven, ipv alles als var te beschouwen.

2.Dit is echt basis programmeren. IF

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
dim s as string
Const pwd as string = "678"

Do
  s=inputbox("wachtwoord nodig...")
  if s <> pwd then
    msgbox "Wrong..."
  end if
while s <> pwd

Of
Visual Basic .NET:
1
2
3
4
5
6
7
dim s as string

s=inputbox("wachtwoord nodig...")
Do while s <> "678"
  msgbox "Wrong..."
  s=inputbox("wachtwoord nodig...")
Loop

[ Voor 24% gewijzigd door Big Womly op 31-07-2009 16:43 ]

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
wat voor programma gebruiken jullie om dit te maken?

Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Gewoon je favoriete teksteditor.
Je probleem is trouwens eenvoudig op te lossen door gewoon "678" tussen aanhalingstekens te zetten, al zou ik toch zeker de tips van de twee personen boven mij ook lezen. Wat jij neerschrijft doet echt menig tenen krommen.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

Verwijderd

Denk er ook even aan dat iemand die voldoende rechten heeft om dit VBScriptje uit te voeren zeker ook het scriptje zou kunnen inzien. Dus als dit script is bedoeld om heel veilig te zijn, dan heb je een probleem, want het wachtwoord is kinderlijk eenvoudig te achterhalen...

Acties:
  • 0 Henk 'm!

Verwijderd

Ik denk dat een whilelus hiervoor efficient is, het programma wacht op een reactie zolang er nog niet op OK geclickt is, je kan de lus dan zo instellen dat hij breakt de velden zijn ingevuld. Als hij niet is ingevuld, dan word de lus herhaald :)

Acties:
  • 0 Henk 'm!

  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

Verwijderd schreef op vrijdag 31 juli 2009 @ 16:18:
wat voor programma gebruiken jullie om dit te maken?
Notepad?
Als je graag wat kleurtjes hebt om dingen overzichtelijk te houden zul je een iets geavanceerdere moeten zoeken. Misschien Notepad++?

Nog een tip: Gebruik 1 taal. Een mix van het nederlands (wachtwoord nodig...) en het engels (wrong password) is gewoon absurd

[ Voor 17% gewijzigd door Big Womly op 31-07-2009 16:44 ]

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mbsaerens schreef op vrijdag 31 juli 2009 @ 16:39:
[...]

Notepad?
Als je graag wat kleurtjes hebt om dingen overzichtelijk te houden zul je een iets geavanceerdere moeten zoeken. Misschien Notepad++?

Nog een tip: Gebruik 1 taal. Een mix van het nederlands (wachtwoord nodig...) en het engels (wrong password) is gewoon absurd
wil ik dit in notepad doen dan geeft windows scripthost een foutmelding :?

regel 1
teken 7
fout einde van de instructie wordt verwacht
code 800A0401
Bron Compilatiefout Microsoft VBScript

en je tip |:( dom van me 8)7

Acties:
  • 0 Henk 'm!

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Ga anders op onderzoek uit naar wat vbscript is en wat de eisen zijn van een simpel 'hello world' vbscript.
Als dat je lukt lukt dit je ook, simpeler dan dit kan haast niet.

google - vbscript tutorial.

zijn niet alleen nuttig maar meestal ook nog wel leuk om te doen :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Thx mijn vraag is beantwoord
Pagina: 1