Avatar billede omen Nybegynder
13. juli 2003 - 16:14 Der er 16 kommentarer og
1 løsning

Tjekke for admin-rights ved opstart

Hvordan får jeg mit program til at tjekke om brugere har admin rettigheder... således hvis han ikke har så kommer programmet med en besked?
Avatar billede kedde65 Praktikant
13. juli 2003 - 18:19 #1
Skal du tjekke om brugeren er med i en bestemt brugergruppe?

Hvad er platformen?

VH CK
Avatar billede omen Nybegynder
13. juli 2003 - 18:35 #2
Platformen er Windows 2000/XP/2003

Jeg ved ikke hvilken brugergruppe der er tale om, men generalt hvis brugere ikke har adgang til at skrive til registry!

Jeg aner intet om brugere, da jeg hele mit liv kun har brugt mig selv som bruger. Programmet er et der laver om i windows' indstillinger i registry, så hvis brugere ikke har rettigheder til det, vil jeg hellere lukke programmet på en ordenligt måde i stedet for et eventuelt crash hvis de prøver!
Avatar billede kedde65 Praktikant
13. juli 2003 - 18:38 #3
du kan jo altid lave noget error handling

on error goto cancel
  'kode til at rette i registry
Cancel:

Hvis det går galt så springer koden til cancel label, og her kan du lukke programmet.

VH CK
Avatar billede omen Nybegynder
13. juli 2003 - 18:44 #4
Jeg vil nu gerne kunne meddele det når programmet starter op.

Jeg har omkring 40 registry indstillinger :-)
Avatar billede kedde65 Praktikant
13. juli 2003 - 18:52 #5
Du kan da bare når prog. starter op prøve at skrive til registry. Hvis det fejler vha. error handling som vist ovenfor så kan du give brugeren besked. Det er klart den nemmeste mulighed, alternativt så skal du igang med ADSI programmering - det kan lade sig gøre men er ikke nemt.

VH CK
Avatar billede omen Nybegynder
13. juli 2003 - 19:10 #6
Kan du gi mig et kode eksempel?
-----
Form_Load()

Dim Cancel As String
Cancel = MsgBox("Dette er fejlkoden")
regCreate_Key_Value HKEY_CURRENT_USER, "Software/FWM", "TestValue", "1"
on error goto Cancel

End Sub
-------

Sådan der?
Avatar billede kedde65 Praktikant
13. juli 2003 - 19:45 #7
private sub Form_Load()
on error goto Cancel
  regCreate_Key_Value HKEY_CURRENT_USER, "Software/FWM", "TestValue", "1"
cancel:
  'ved fejl springer kode hertil
End Sub
Avatar billede omen Nybegynder
13. juli 2003 - 19:54 #8
Og hvad hvis error er en MsgBox ?

cancel:
  MsgBox("bla bla")

?
Avatar billede omen Nybegynder
13. juli 2003 - 19:54 #9
Og hvis du har forstand på at oprette brugere, kan du hjælpe mig med at lave en bruger som ikke har de nødvendige rettigheder? Så kan jeg lige teste engan :)
Avatar billede kedde65 Praktikant
13. juli 2003 - 19:56 #10
det du skriver efter cancel det er det kode der bliver udført, hvis der opstår en fejl.

VH CK
Avatar billede omen Nybegynder
13. juli 2003 - 20:18 #11
Ok tak! Jeg prøver lige engang så!
Avatar billede omen Nybegynder
13. juli 2003 - 20:19 #12
Hvorfor faen ka jeg ikke logge af? Hmrf!
Avatar billede omen Nybegynder
13. juli 2003 - 20:46 #13
Nå fandt den! Ved du hvordan man sætter avanceret indstillinger for brugere?
Avatar billede kedde65 Praktikant
13. juli 2003 - 22:18 #14
Hvad mener du med advanceret indstillinger?

VH CK
Avatar billede omen Nybegynder
13. juli 2003 - 23:04 #15
ja, som f.eks indstillinger som rettigheder og således! Jeg har åbnet Users Accounts(XP), men kan ikke finde noget synderligt avanceret, kun lige bruger/pass osv.
Avatar billede kedde65 Praktikant
13. juli 2003 - 23:31 #16
rettigheder sætter du på de enkelte fiuler eller mapper. højreklik på objektet og vælg egenskaber herinde kan du sætte sikkerhed på for hvad hver enkelt bruger må og ikke må.

VH CK
Avatar billede sion Nybegynder
18. juli 2003 - 13:32 #17
Administratorrettighederne er ret tricky at finde, da det dækker over mange område hvorpå rettighederne for bl.a. brugere godt kan ændres af systemadministratoren således at brugere f.eks. har administratorrettigheder til at ændre filer i systemmappe.
Dog kan man tjekke om den aktuelle bruger er en administrator, som selvsagt har fuld kontrol over systemet. Det kan gøres vha. følgende kode:

Private Declare Function IsNTAdmin Lib "advpack.dll" (ByVal dwReserved As Long, ByRef lpdwReserved As Long) As Long
Private Sub Form_Load()
  If CBool(IsNTAdmin(ByVal 0&, ByVal 0&)) = True Then
    MsgBox "Du er administratoren!", vbInformation
  Else
    MsgBox "Du er ikke administratoren!", vbExclamation
  End If
End Sub

Jeg ved ikke om dette tjek kan bruges i dit tilfælde, men jeg håber det kan bruges til noget ;)
-Sion
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

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging