crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Функции определения учетной записи и папки учетной записи, подскажите, пожалуйста
AD
  опции профиля:
сообщение 20.3.2009, 9:35
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Есть ли в Qt функции определения имени компьютера, учетной записи? А также функции определения папки нахождения профиля учетной записи?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 20.3.2009, 9:37
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3291
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Думаю, что нет.
Нужно делать индивидуально для каждой ОС.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 20.3.2009, 9:56
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(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
  опции профиля:
сообщение 20.3.2009, 10:20
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


придется getenv(const char*) использовать. но это не совсем верный путь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 20.3.2009, 10:54
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


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

Зачем и что надо передавать в параметре?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 20.3.2009, 11:05
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


getenv("USERNAME") для винды
getenv("USER") для линукса.

но редупреждаю это не совсем верный способ. потому что имя берется не из процесса короче это не эффективный uid. а так просто переменная окружения текущая точно так же можно брать HOME PATH и т.д. и т.п.
возвращает const char*

Сообщение отредактировал kwisp - 20.3.2009, 11:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 20.3.2009, 11:37
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Компилятор подсказал более современную функцию.
_dupenv_s(char** PUserName, sizet_t* PSizeUsr, const char* user_name);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 20.3.2009, 11:39
Сообщение #8


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


AD,
что за компилятор и кросплатформенна ли эта функция???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 20.3.2009, 11:40
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(kwisp @ 20.3.2009, 11:39) *
AD,
что за компилятор и кросплатформенна ли эта функция???

Visual Studio 2005! Не знаю на счет кроссплатформенности. В данном приложении это неважно!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 20.3.2009, 11:40
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


У Qt есть кроссплатформенные варианты qgetenv()/qsetenv(). Но о них не написано в документации, т.ч. на свой страх.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 11.7.2020, 10:41