vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Administrator erkennen 
Autor: ModeratorDieter (Moderator)
Datum: 28.11.02 15:16

Hi Wolfgang,

kommt Zeit - kommt Rat
Private Const NERR_Success            As Long = 0&
Private Const LevelUserInfo1          As Long = 1&
Private Const USER_PRIV_ADMIN         As Long = 2&
Private Const VER_PLATFORM_WIN32_NT   As Long = 2&
  ' Benutzer-Informationen:
Private Type USER_INFO_1
  usri1_name         As Long
  usri1_password     As Long
  usri1_password_age As Long
  usri1_priv         As Long
  usri1_home_dir     As Long
  usri1_comment      As Long
  usri1_flags        As Long
  usri1_script_path  As Long
End Type
' Informationen zum Betriebssystem:
Private Type OSVERSIONINFO
  dwOSVersionInfoSize As Long ' Größe der Struktur
  dwMajorVersion      As Long ' Major-Versionsnummer
  dwMinorVersion      As Long ' Minor-Versionsnummer
  dwBuildNumber       As Long ' Build-Versionsnummer
  dwPlatformId        As Long ' Plattform-Kennzeichner
  szCSDVersion        As String * 128 ' Service Pack (Klartext)
End Type
 
 
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA"
(ByRef VersionInformation As OSVERSIONINFO) As Long
Private Declare Function NetUserGetInfo Lib "netapi32" (ByVal ServerName As
Long, ByVal UserName As Long, ByVal Level As Long, ByRef ptrBuffer As Long)
As Long
Private Declare Function NetApiBufferFree Lib "NETAPI32.DLL" (ByVal
ptrBuffer As Long) As Long
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA"
(ByVal lpBuffer As String, ByRef Size As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef
Destination As Any, ByRef Source As Any, ByVal Size As Long)
 
Public Function IsAdmin(Optional ByVal UserName As String) As Boolean
' ---------------------------------------------------------------
' IsAdmin prüft, ob ein Anwender zur Gruppe der Administratoren
' gehört. Wird UserName nicht übergeben, wird die Prüfung für
' den aktuell angemeldeten Benutzer auf der lokalen Maschine
' durchgeführt. Unter Windows 95/98/Me wird mangels Rechtebe-
' schränkung grundsätzlich TRUE zurückgegeben.
' ---------------------------------------------------------------
Dim OSV       As OSVERSIONINFO
Dim UserInfo1 As USER_INFO_1
Dim lSize     As Long
Dim ptrBuffer As Long
Dim RetVal    As Long
' Windows-Versionsinformationen abfragen
  OSV.dwOSVersionInfoSize = Len(OSV)
  GetVersionEx OSV
' Ist als OS Windows NT/2000/XP oder Nachfolger gegeben?
  If OSV.dwPlatformId <> VER_PLATFORM_WIN32_NT Then
    ' Es liegt keine NT-basierende Windows-Version vor.
    ' Die Funktion wird hier mit TRUE verlassen, da Windows
    ' 95/98/Me die Rechte des Anwenders nicht einschränken,
    ' einem Administrator vergleichbare Rechte also gegeben sind:
    IsUserAdmin = True
    Exit Function
  End If    ' Falls kein Benutzername übergeben wurde, statt-
' dessen den aktuellen Benutzernamen ermitteln:
If Len(UserName) = 0 Then
    GetUserName UserName, lSize
    ' nötige Buffergröße ermitteln
    UserName = Space$(lSize)
    ' Buffer bereitstellen und...
    GetUserName UserName, lSize
     ' ...Information abholen
End If
' USER_INFO_1-Benutzerinfos auslesen:
RetVal = NetUserGetInfo(StrPtr(ComputerName), StrPtr(UserName),
LevelUserInfo1, ptrBuffer)
' War der Aufruf von NetUserGetInfo erfolgreich?
If RetVal = NERR_Success Then
  ' Erfolgreicher Aufruf
  ' Ermittelte Daten in eine USER_INFO_1-Struktur kopieren:
  CopyMemory UserInfo1, ByVal ptrBuffer, Len(UserInfo1)
  ' Von NetUserGetInfo reservierten Speicherbereich freigeben
   NetApiBufferFree ptrBuffer
  ' Auswerten, ob der Benutzer Administrator-Rechte hat:
  IsAdmin = (UserInfo1.usri1_priv = USER_PRIV_ADMIN)
End If
End Function

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Administrator erkennen134guitarman28.11.02 11:50
Re: Administrator erkennen74guitarman28.11.02 13:44
Re: Administrator erkennen458Wolfgang28.11.02 15:01
Re: Administrator erkennen497ModeratorDieter28.11.02 15:16
Genau man muss nur Geduld haben (oT)438Wolfgang28.11.02 15:21
Re: Administrator erkennen70guitarman28.11.02 16:37
Re: Administrator erkennen450dbayer28.11.02 17:07

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel