![]() |
||
![]() |
Anmeldenamen unter Windows ermittelnSie schreiben ein Visual-Basic-Programm. Darin möchten Sie den in der aktuellen Windows-Sitzung angemeldeten Benutzer eindeutig ermitteln. Diese Aufgabe kann eine VBA-Funktion für Sie erledigen. Öffnen Sie die Office-Anwendung, in der Sie die Funktion benötigen - beispielsweise Access - und starten Sie den Visual-Basic-Editor. Dazu können Sie in allen Microsoft-Office-Anwendungen die Tastenkombination [Alt]+[F11] benutzen. Erzeugen Sie zuerst ein neues Modul mit dem Befehl »Einfügen | Modul« und ergänzen Sie dann folgende Anweisung Private Declare Function GetErzeugen Sie anschließend über den Befehl »Einfügen | Procedur« eine neue Prozedur mit dem Namen »getUser Name()« und wählen Sie als »Gültigkeitsbereich« »Public«. Ergänzen Sie im leeren Funktionsrumpf folgenden Quelltext: Public Function getUserName() As StringSpeichern Sie das Modul. Jetzt können Sie mit der Funktion »getUserName()« die Bezeichnung des aktuellen Benutzerkontos ermitteln. Den Namen des angemeldeten Anwenders liest hingegen die API-Funktion »GetUserNameA()« aus - sie befindet sich in der Windows-Bibliothek ADVAPI32.DLL. Der im Scipt verwendete Befehl »Declare Function« verweist mit dem Aufruf »GetWindows User()« darauf. Ihr Aufruf ähnelt einer in der Programmiersprache C implementierten Funktion. Als Parameter über-geben Sie eine Zeichenkette und deren maximale Länge: die Variable »strBuffer« und die Konstante »constBufferLaenge«. Die Funktion beendet den übergebenen Namen mit einem Null-Zeichen, das der Konstante »vbNull(Char)« entspricht. Mit dem Befehl »InStr()« ermittelt das Modul im Rückgabewert der Funktion die Position »intPosition« dieser Konstante und übergibt mit Hilfe von »Left()« die Zeichenkette bis zu diesem Null-Zeichen an den Rückgabewert der Funktion »getUserName()«. |
![]() |