Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Функции определения учетной записи и папки учетной записи
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
AD
Есть ли в Qt функции определения имени компьютера, учетной записи? А также функции определения папки нахождения профиля учетной записи?
ViGOur
Думаю, что нет.
Нужно делать индивидуально для каждой ОС.
AD
Цитата(ViGOur @ 20.3.2009, 9:37) *
Думаю, что нет.
Нужно делать индивидуально для каждой ОС.

Да ладно, неужели нет функции определения названия учетной записи, хотя бы? :blink: :blink: :blink:

Очень и очень нужно.....

О, кое-что нашел! :)
Цитата
QString QDir::homePath () [static]
Returns the absolute path of the user's home directory.
Under Windows this function will return the directory of the current user's profile. Typically, this is:
C:/Documents and Settings/Username
Use the toNativeSeparators() function to convert the separators to the ones that are appropriate for the underlying operating system.
If the directory of the current user's profile does not exist or cannot be retrieved, the following alternatives will be checked (in the given order) until an existing and available path is found:
The path specified by the USERPROFILE environment variable.
The path formed by concatenating the HOMEDRIVE and HOMEPATH environment variables.
The path specified by the HOME environment variable.
The path returned by the rootPath() function (which uses the SystemDrive environment variable)
The C:/ directory.
Under non-Windows operating systems the HOME environment variable is used if it exists, otherwise the path returned by the rootPath() function is used.


А есть функции, которые позволяют узнать именно имя учетной записи? А то придется извлекать из пути, который вернет эта функция.
kwisp
придется getenv(const char*) использовать. но это не совсем верный путь.
AD
Цитата(kwisp @ 20.3.2009, 10:20) *
придется getenv(const char*) использовать. но это не совсем верный путь.

Зачем и что надо передавать в параметре?
kwisp
getenv("USERNAME") для винды
getenv("USER") для линукса.

но редупреждаю это не совсем верный способ. потому что имя берется не из процесса короче это не эффективный uid. а так просто переменная окружения текущая точно так же можно брать HOME PATH и т.д. и т.п.
возвращает const char*
AD
Компилятор подсказал более современную функцию.
_dupenv_s(char** PUserName, sizet_t* PSizeUsr, const char* user_name);
kwisp
AD,
что за компилятор и кросплатформенна ли эта функция???
AD
Цитата(kwisp @ 20.3.2009, 11:39) *
AD,
что за компилятор и кросплатформенна ли эта функция???

Visual Studio 2005! Не знаю на счет кроссплатформенности. В данном приложении это неважно!
SABROG
У Qt есть кроссплатформенные варианты qgetenv()/qsetenv(). Но о них не написано в документации, т.ч. на свой страх.
kwisp
Цитата(SABROG @ 20.3.2009, 11:40) *
Но о них не написано в документации, т.ч. на свой страх.

вот это уже интересно.
я по исходникам рыл - не нашел.

видно криво искал есть такое дело.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.