Windows Benutzername vordefiniert in Textbox eintragen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von FTimo.

    Windows Benutzername vordefiniert in Textbox eintragen

    Hallo zusammen,
    ich habe derzeit eine Textbox mit einem Auswahlmenü an Benutzernamen fest hinterlegt.


    VB.NET-Quellcode

    1. Private Sub cmbAnsprechpartner_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbAnsprechpartner.SelectedIndexChanged
    2. End Sub


    und wird mit Outlook per E-Mail versendet bzw in die Mail eingetragen über:


    VB.NET-Quellcode

    1. lblAnsprechpartner.Text & ": " & vbNewLine & cmbAnsprechpartner.Text & vbNewLine & vbNewLine & _


    Nun würde ich gerne in diesem Textfeld vordefiniert den aktueller Windowsbenutzernamen eintragen lassen. Der Benutzer selbst sollte es jedoch noch manuell verändern können.

    Ebenso sollte er auch vielleicht sogar noch statt dem fest eingetragenem Auswahlmenü eine Liste aus dem Active Directory angezeigt bekommen. Jedoch als Klassenfilter nur Benutzer und nur wenn dieser Mitglied von <dieser> Gruppe ist.

    Könnt ihr mir da weiterhelfen?

    Gruß Timo

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „FTimo“ ()

    Nutze bitte den Standard-Font und den [ VB ]-Tag.

    VB.NET-Quellcode

    1. Dim username As String = System.Security.Principal.WindowsIdentity.GetCurrent().Name
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für die Antwort.

    Leider erscheint nun DOMAIN\USERNAME

    Ich hätte gerne nur den Namen, Also den Benutzernamen (Vor- und Nachname)

    Und wie kann ich denn dann die Variable in der ComoBox vordifiniert als Text anzeigen lassen?

    Und kann man die Auswahlliste denn irgendwie dann abfragen über LDAP, alle Benutzer die in der und der Gruppe drin sind?



    Bin ziemlich neu in visual basic und muss ein Formular abändern.



    Danke für die Hilfe schon einmal ;)
    Vor- und Nachname, ja. Was meinst du mit "welchen Benutzernamen der Benutzer eingibt" ?

    Ich habe eine ComboBox inder derzeit eine Auswahl von Namen fest vorgegeben ist. Als "Text" steht in der Box bereits drin "- bitte wählen -"

    Nun soll eben statt "- bitte wählen -" automatisch schon der Vor- und Nachname des Benutzers stehen, dass er selber nicht mehr sich aus der Liste auswählen muss.

    Allerdings kann es auch vorkommen, dass wer für wen anderes dieses Formular abschickt, daher muss weiterhin die Auswahlliste verfügbar sein, die derzeit ja vorgeschrieben mit den Benutzer drin steht. Diese sollte wenn möglich über eine Abfrage des ADs automatisch immer auf dem aktuellen Stand sein. Alle Benutzer sind in der Gruppe "Gruppe1" drin und in der Liste werden dann eben alle Benutzer des ADs angezeigt mit Vor und Nachname, die in dieser "Gruppe1" Mitglied sind.

    Hoffe nun war es verständlich =)
    Mit Enviroment.UserName sollte es dann ja klappen.

    Allerdings bekomme ich es nicht hin, dass in der Box wirklich die Variable dann angezeigt wird.

    So habe ich es derzeit:

    VB.NET-Quellcode

    1. Private Sub cmbAnsprechpartner_Change()
    2. 'Aufgebender wird dem Ansprechpartner gleichgesetzt, wenn Ansprechpartner ausgefüllt wird
    3. cmbAufgebender.SelectedValue = cmbAnsprechpartner
    4. End Sub
    5. Private Sub cmbAnsprechpartner_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    6. End Sub
    7. Private Sub cmbAnsprechpartner_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbAnsprechpartner.SelectedIndexChanged
    8. End Sub
    9. Private Sub UserForm_Initialize()
    10. Dim username As String = Environment.UserName
    11. cmbAnsprechpartner.Items.Add(username)
    12. End Sub


    Ich habe keine Ahnung, wo genau nun die Variable angelegt werden muss. Der Code ansich sollte doch stimmen?
    Bei mir bleibt derzeit die Box einfach komplett leer.
    Nun funktioniert es, indem ich über "Handles" sage, beim Clicken soll er es ausführen.

    Wieso funktioniert es nicht direkt, wenn das Programm aufgeht? :/

    VB.NET-Quellcode

    1. Private Sub cmbAnsprechpartner_Change()
    2. 'Aufgebender wird dem Ansprechpartner gleichgesetzt, wenn Ansprechpartner ausgefüllt wird
    3. cmbAufgebender.SelectedValue = cmbAnsprechpartner
    4. End Sub
    5. Private Sub cmbAnsprechpartner_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbAnsprechpartner.Click
    6. Dim username As String = Environment.UserName
    7. cmbAnsprechpartner.Text = username
    8. End Sub
    9. Private Sub cmbAnsprechpartner_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbAnsprechpartner.SelectedIndexChanged
    10. End Sub




    Und wie man aufs AD zugreifen kann und die User Vor und Nachnamen dort anzeigt, weiß das jemand?

    Bzw. ebenso beim Anzeigen von "Enviroment.UserName" wird f.mueller beispielsweise angezeigt. Vor - und Nachname wäre schöner =)



    Danke ;)

    VB.NET-Quellcode

    1. Private Property objSysInfo As Object
    2. Private Property strUser As Object
    3. Private Property objUser As Object




    VB.NET-Quellcode

    1. Private Sub cmbAnsprechpartner_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbAnsprechpartner.Click
    2. On Error Resume Next
    3. objSysInfo = CreateObject("ADSystemInfo")
    4. strUser = objSysInfo.UserName
    5. objUser = GetObject("LDAP://" & strUser)
    6. cmbAnsprechpartner.Text = objUser.sn & ", " & objUser.givenName
    7. End Sub




    Bleibt "nur" noch das Active Directory übrig, dass in der Auswahlliste der ComboBox die AD Benutzer sichtbar sind, die in der und der Gruppe Mitglied sind.