Seite 1 von 1

Benutzername in Qt4

Verfasst: 24. Mai 2007 15:31
von daniel79
Hallo,
sehe ich das richtig, dass Qt 4 leider keine Funktion besitzt um den Benutzernamen des aktuellen Benutzers auszulesen? Und da gibt es auch keine andere plattformunabhängige Möglichkeit zu, oder?
Grüße, Daniel

Verfasst: 24. Mai 2007 15:38
von C_R
Müsste man nicht über den home bzw. C:\Documents and Settings\username herankommen?

QDir::home() :)

Verfasst: 24. Mai 2007 17:01
von daniel79
Den Benutzernamen bekommt man wohl Über die Funktion GetUserName() der Win-API. Ausserdem steht der wohl auch in einer Umgebungsvariable. Aber mir würde eine plattformunabhängige Lösung besser gefallen...

Verfasst: 24. Mai 2007 18:56
von Burgpflanze
Versuchs mal damit:

Code: Alles auswählen

QString userName()
{
        QDir dir( QDir::home() );
        QString userName = dir.dirName();
        return userName;
}

Verfasst: 25. Mai 2007 09:19
von Eltharion
Was unter Windows daneben gehen kann, da man dort den Nutzer umbenennen kann und dabei der alte Profil-Name (also der Verzeichnisname) nicht angetastet wird. Sollte man wissen und z.B. in die Doku aufnehmen. Und unter Linux ist es prinzipiell auch möglich, Username != HomeDir zu haben.

E*

Verfasst: 25. Mai 2007 11:40
von Burgpflanze
Nach einigem Suchen gefunden:

Code: Alles auswählen

QString userName = qgetenv( "USER" );
qgetenv ist in der qglobal.h deklariert:

Code: Alles auswählen

QByteArray qgetenv( const char *varName );
Kurioserweise taucht diese Funktion nicht in der Doku auf.