crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Функции определения учетной записи и папки учетной записи
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
kwisp Дата 20.3.2009, 11:44
 
Цитата(SABROG @ 20.3.2009, 11:40) *
Но о них не написано в документации, т.ч. на свой страх.

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

видно криво искал есть такое дело.
SABROG Дата 20.3.2009, 11:40
  У Qt есть кроссплатформенные варианты qgetenv()/qsetenv(). Но о них не написано в документации, т.ч. на свой страх.
AD Дата 20.3.2009, 11:40
 
Цитата(kwisp @ 20.3.2009, 11:39) *
AD,
что за компилятор и кросплатформенна ли эта функция???

Visual Studio 2005! Не знаю на счет кроссплатформенности. В данном приложении это неважно!
kwisp Дата 20.3.2009, 11:39
  AD,
что за компилятор и кросплатформенна ли эта функция???
AD Дата 20.3.2009, 11:37
  Компилятор подсказал более современную функцию.
_dupenv_s(char** PUserName, sizet_t* PSizeUsr, const char* user_name);
kwisp Дата 20.3.2009, 11:05
  getenv("USERNAME") для винды
getenv("USER") для линукса.

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

Зачем и что надо передавать в параметре?
kwisp Дата 20.3.2009, 10:20
  придется getenv(const char*) использовать. но это не совсем верный путь.
AD Дата 20.3.2009, 9:56
 
Цитата(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.


А есть функции, которые позволяют узнать именно имя учетной записи? А то придется извлекать из пути, который вернет эта функция.
ViGOur Дата 20.3.2009, 9:37
  Думаю, что нет.
Нужно делать индивидуально для каждой ОС.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 22:43