Avatar billede jesper2003 Nybegynder
14. juni 2005 - 17:22 Der er 12 kommentarer og
2 løsninger

Key i VB?

Hvor dan laver jeg så at man skal bruge en key til et program i vb? Det skal enten være sådan at den tjekker keyen på en server eller i en fil der er med i programmet
Avatar billede joern Nybegynder
14. juni 2005 - 18:24 #1
Hej Jesper.

Du spørger ikke om hvordan man gør noget konkret med Visual Basic, men om hvordan man får en 'funktion' udført.  Det er lidt vel bredt, faktisk skal den der svarer lave en del af programmet for dig.
Jeg har kigget på nogle af de spørgsmål, du selv har besvaret, og det var nogle. du også selv havde stillet.  Det bliver man ikke populær på, her på 'Eksperten', at tage points selv.
Jeg kan også se, at du er meget ung, og vil råde dig til at anskaffe eller låne bøger om programmering med visual basic.  Mange steder på nettet kan man hente kode-eksempler og der er også en del ganske korte tilknyttet VB's online hjælp til de enkelte kommando-ord.

Hvis et VB-program skal afprøve om en nøgle er gyldig, skal den indtastede nøgle sammenlignes med noget i enten selve programmet eller i en tilknyttet fil.  Men det nytter jo ikke at man kan åbne en fil og se hvilke nøgler der er gyldige, derfor skal nøglen udsættes for en såkaldt algoritme.  En simpel en hvis nøglen er tal, er at tage tværsummen og gange den med et tal.
Hvis nøglen skal afprøves ved opsalg i en fil på en server eller et websted, skal programmet have adgang til stedet og kunne læse derfra.  Er det et åbent websted kan du bruge 'inet'

Private Sub Command1_Click()
ind = Inet1.OpenURL("http://jkfsoft.dk/pakker/bemand.dat")
txtmail.Text = ind

Her læses en fil fra webstedet, der hedder bemand.dat  eksemplet er fra et af mine programmer.

Men som skrevet:  Lær programmering fra en lærebog og afprøv de eksempler de der i den.  Du kan ikke forvente at 'Eksperter' lave større programdele for point, du måske endda selv tager tilbage.  Jeg har mange tusinde point og spørger aldrig mere, men bruger dog Ekspertens søgefunktion til at kigge på tidligere besvarede spørgsmål.
Du behøver ikke at give mig point, selv om du måske kan bruge mit svar.

M.v.h.  Jørn
Avatar billede jesper2003 Nybegynder
14. juni 2005 - 18:33 #2
Ja hved det godt men vil helst vente til Visual Basic 2005 kommer.
Avatar billede jesper2003 Nybegynder
14. juni 2005 - 18:34 #3
Fordi vis jeg begynder at læse på version 6 eller hvad den nu hedder så kan jeg jo ikke bruge det i VB 2005 eller ?
Avatar billede joern Nybegynder
14. juni 2005 - 19:51 #4
Hej Jesper.

Det du lærer i en tidligere version af Visual Basic, kan anvendes i de senere.  Jeg begyndte med VB 3.0 og bruger nu VB 5.  Efter version 6.0 er det VB.net, og det er MEGET anderledes og beregnet for udvikling af applikationer der kører i en browser.
Indlærings-kurven i VB.net er stejl; jeg tvivler på, at jeg kan lære det ved selv-studium.  Jeg har ellers anskaffet mig David S. Platt's 'Introduktion til .NET' fra IDG's forlag.

Men har du et domæne eller adgang til gratis websted, så afprøv det jeg har vist med 'inet'.
Du kan også læse om 'inet' f.eks. på http://www.developerfusion.co.uk/show/1854/2/

http://msdn.microsoft.com/library/en-us/dnexpvb/html/usingfiletransferprotocol.asp

Måske er du ved at slå et større brød op, end du kan bage?  Er du god til IT-engelsk?

M.v.h. Jørn
Avatar billede jesper2003 Nybegynder
14. juni 2005 - 20:46 #5
Jeg er rimelig god ja. Kan forstå det meste
Avatar billede jesper2003 Nybegynder
14. juni 2005 - 20:49 #6
Jeg vil gerne ha så der ligger et brugernavn og password i en krypteret fil i programmet. Det er nok det nemmeste da der kun er ca 4 personer der skal ha programmet.
Avatar billede jesper2003 Nybegynder
14. juni 2005 - 20:50 #7
Men hved ikke helt hvor dan jeg skal lave det. Har allerede lavet programmet mangler kun det med login
Avatar billede joern Nybegynder
14. juni 2005 - 22:22 #8
Hej Jesper.

Login eller nøgle er for mig to forskellige ting.  En nøgle er ligesom når du installerer noget fra Microsoft med licens, - dét der giver dig rettighed til at anvende programmet på din computer.
Login er den begrænsning, at man skal være oprettet som bruger, for at få adgang til at åbne et program, eller til at benytte visse funktioner i programmet, f.eks. at slette poster i en database.

Login-data skal jo ikke tjekkes på en webside, det vil være unødvendig omstændeligt!
Du kan skrive brugernavne og passwords direkte i din kildetekst, hvis det kun er de samme 4 personer, der skal anvende programmet.  Det vil så kræve ændring af kildeteksten og ny compilering, når der evt. skal tilføjes eller slettes brugere.  Det vil være vanskeligt at finde sammenhængende brugernavne og passwords ved at åbne kildeteksten med en editor.

Jeg benytter i mine programmer at brugernavne og kodeord gemmes i en fil, der lægges i systemmappen, og hedder noget helt neutralt, f.eks. vbbrko.dll  I nogle af mine programmer kan der tildeles 5 niveau'er af rettigheder.

Nedenfor er et eksempel hvor filen med brugere hedder msvbjkf5.dll

Først indlæses data fra filen i et array.

Set fso = CreateObject("Scripting.FileSystemObject")
  sydir = fso.getspecialfolder(1)
  ' = MsgBox("Din system-mappe er:  " & sydir, 64, "Afhængig af styresystem.")
 
  On Error GoTo fejl007                        ' - fil med brugernavne
  Open sydir & "\msvbjkf5.dll" For Input As #7
    Do While EOF(7) = False
      Line Input #7, id(j)
      Line Input #7, kode(j)
      j = j + 1
      If j > 50 Then
        X = MsgBox("Programmet er indrettet til højst 50 brugere", 64, "Medd. fra indlæsning af brugernavne.")
        Exit Do
      End If
    Loop
  Close #7
  Exit Sub
fejl007:
  If Err.Number = 53 Then X = MsgBox("Filen med brugere og kodeord er ikke anbragt som angivet i installations-vejledningen. Benyt nødproceduren og kontakt programleverandøren.", 16, "Medd. fra Færge-Booking login")
  If Err.Number = 62 Then X = MsgBox("Filen med brugernavne er beskadiget. Kontakt programleverandøren eller benyt nødproceduren.", 16, "Medd. fra Færge-Booking login")
  Exit Sub
  Resume Next

Når brugeren har indsat brugernavn og kodeord i to felter testes om der er overensstemmelse.

Private Sub knlogin_Click()
  If Len(txtbruger.Text) = 0 Then End
  If Len(txtpass.Text) = 0 Then End
 
  For j = 0 To 50
    If LCase(id(j)) = LCase(txtbruger.Text) Then
      If kode(j) = txtpass.Text Then
          hunbasis.Visible = True
          hunbasis.labbruger.Caption = id(j)          'bruger
          medarb = Left(id(j) & Space(10), 10)        'benyttes også i nedbrudsproceduren
          frmlogin.Visible = False
          Open App.Path & "\login.log" For Output As #12
            Print #12, txtbruger.Text & "  " & Now
          Close #12
          Exit Sub
        Else
          X = MsgBox("Kodeordet passer ikke til det angivne brugernavn, vær opmærksom på store/små bogstaver, prøv igen!", 48, "Medd. fra H-R Færge-Booking.")
          k = k + 1
          txtpass.Text = ""
          If k > 5 Then
            X = MsgBox("Kodeordet er stadig forkert, kontakt systemadministrator!", 16, "Programmet afsluttes.")
            End
            Exit Sub
          End If
          txtpass.SetFocus
          Exit Sub
      End If
    End If
  Next j
 
 
 
  X = MsgBox("Det angivne brugernavn findes ikke.", 48, "Medd. fra  Færge-Booking login.")

End Sub

Filen der læses fra ser således ud:

setup
setup
Jorn
katja
Jørgen
jadata
Thomas
ladager


M.v.h. Jørn
Avatar billede jesper2003 Nybegynder
16. juni 2005 - 21:14 #9
Skal denne fil sættes ind i form1.vb eller i en dll fil
Avatar billede jesper2003 Nybegynder
16. juni 2005 - 21:22 #10
dll filen skal ha disse data ikke

setup
setup
Jorn
katja
Jørgen
jadata
Thomas
ladager

og form1 skal ha koden
Avatar billede jesper2003 Nybegynder
16. juni 2005 - 21:26 #11
Kan ikke få koden til at funke
Avatar billede joern Nybegynder
16. juni 2005 - 23:13 #12
Hej Jesper.

Den angivne kildetekst er jo løsrevet fra sin sammenhæng og kan ikke bare indsættes i et andet projekt.  Du kan bruge den til inspiration for den kode, du selv udformer.
Først og fremmest skal du forstå hvad der udføres.

Min kildetekst står direkte i formen.  Der skal jo være dimensioneret to arrays:  id og kode, i dette tilfælde med index 50, men de kan være dynamiske, så skal det blot bruges 'Redim Preserve'.  Men ellers vil jeg ikke uddybe en forklaring, du må bruge den nødvendige tid sammen med en lærebog og dens eksempler.

M.v.h.  Jørn
Avatar billede joern Nybegynder
23. juni 2005 - 10:49 #13
Hej Jesper.

Tak for point, fik du styr på sagen så?

M.v.h. Jørn
Avatar billede jesper2003 Nybegynder
25. juni 2005 - 10:46 #14
Nope. Jeg skal først lige ha købt en lære bog. Så kan jeg prøve med denne kode når jeg har læst i den osv. Men tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester