Benutzername

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    Benutzername

    Wie kann ich den Benutzernamen ganz einfach erkennen?

    wenn ich

    VB.NET-Quellcode

    1. My.User.Name
    verwende, dann habe ich den Computernamen\Benutzernamen stehen

    ich kann natürlich den String nach "\" durchsuchen und dann abschneiden, aber ob es nicht ein Stückchen einfacher ginge?
    Hi!

    Domain\Benutzername ist die normale Windows-Kennung.

    Die API GetUserName wurde in .net durch

    VB.NET-Quellcode

    1. Principal.WindowsIdentity.GetCurrent.Name

    ersetzt. Das kannst du mal versuchen.


    so long...
    Andy

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mad Andy“ ()

    Der erkennt Principal

    kurze erklärung

    ich will einen Ordner Erstellen in den C:\Dokumente und Einstellungen\Benutzer...

    damit man auch mit eingeschränkten Rechten das Programm ausführen kann

    wenn man in normaler DOS-Konsole "set" eingibt, kommen die Ordner, die man verwenden muss

    den Pfad gegenüber APPDATA will ich verwenden

    "C:\Dokumente und Einstellungen\" kann ich selbst eingeben

    Jetzt muss der Benutzername kommen

    Kann ich diese APPDATA i-wie durch MS-Klassen kriegen oder muss ich so vorgehen, wie ich angefangen habe?

    EDIT//so, ich habe jetzt einfach

    VB.NET-Quellcode

    1. Mid(My.User.Name, My.Computer.Name.Length + 2)
    genommen

    wenn einer dass mit APPDATA weiß, wie ich sowas in Vb finde, bitte schreiben

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nikolai“ ()

    Ich weiß, der Thread ist schon etwas älter, für die SuFu jedoch nicht zu verachten ;)

    Habe nen Link zu dem Thema gefunden: blog.kowalczyk.info/kb/getting…r-.net-winforms-apps.html
    Ich übersetz den mal nach vb, bitte melden, wenns nicht funzt ^^
    Der Vorteil von dem Code ist, dass der Config-Ordner keine Versionsnummer drin hat, damit man einfach mit einer neueren Version keine neue Config erstellen muss, sondern die alte weiterverwenden kann.

    VB.NET-Quellcode

    1. Public cachedUserDataPath as String ' diese Variable in die gleiche Klasse packen, hier wird gecached um den wiederholten aufruf zu beschleunigen
    2. Public Function GetUserDataPath() as String
    3. If cachedUserDataPath <> "" Then return cachedUserDataPath
    4. cachedUserDataPath = System.IO.Path.Combine(System.Windows.Forms.Application.UserAppDataPath, "CamViewer")
    5. Dim pathParts() as String = cachedUserDataPath.Split(System.IO.Path.DirectorySeparatorChar)
    6. System.Diagnostics.Debug.Assert(pathParts.Length > 3)
    7. Dim pathSep as String = System.Char.ToString(System.IO.Path.DirectorySeparatorChar)
    8. if (pathParts.Length > 3)
    9. cachedUserDataPath = System.String.Join(pathSep, pathParts, 0, pathParts.Length - 2)
    10. return cachedUserDataPath
    11. End Function



    PS: Die fehlende Versionsnummer ist kein Nachteil. Bei Inkompatiblität kann man seine eigenen verwenden. Z.B. verwenden Version 1.x und 2.x die gleichen configs und für version 3.x hängt man einfach noch ne "3" hinten an.