Russian Qt Forum
Ноябрь 24, 2024, 12:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: список юзеров ОС  (Прочитано 3382 раз)
shender
Гость
« : Август 02, 2010, 11:31 »

День добрый. Такой вопрос, возможно ли средствами qt узнать список пользователей ОС, и из под какого пользователя запущено приложение? В какую степь копать? Спасибо.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Август 02, 2010, 11:44 »

Это все платформозависимые вещи.

Поищите в гугле, может кто-то уже создал такой класс... Если не найдете - то придется вам самим его реализовывать.

Имхо, в *.nix для получения списка пользователей, групп и т.п. придется использовать системные бинарики (они во всех никсах имеются) которые выводят эту информацию в консоль. Например, посмотрите как реализованы такие вещи как KUser и т.п. (Для KDE, GNOM и т.п.). В винде  - наверное WinApi нужно использовать, хотя, может быть, аналогично никсам можно использовать какие-нить екзешки для этого.  
--

Еще имхо - лучше всего подсмотреть как это сделано в KDE, т.к. для него есть сборки для *.nix и Windows!
« Последнее редактирование: Август 02, 2010, 11:47 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Август 02, 2010, 11:48 »

Поищи на форуме, уже подобный вопрос был
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Август 02, 2010, 11:51 »

Вот, может поможет: http://websvn.kde.org/trunk/KDE/kdeadmin/kuser/
Записан

ArchLinux x86_64 / Win10 64 bit
asvil
Гость
« Ответ #4 : Август 02, 2010, 16:18 »

Получения имени текущего полльзователя. Используется как обертка для QtScript функции. Проверено на следующих ОС: winxpsp3, ubuntu9.10.
Код:
// Crosplatform getUserName function
#ifdef Q_WS_WIN
#include <windows.h>
#include <lmcons.h>
#elif defined Q_WS_X11
#include <pwd.h>
#endif //#ifdef Q_WS_WIN

QScriptValue getLoginWrapper(QScriptContext* context, QScriptEngine* engine)
{
  QString userName;
#ifdef Q_WS_WIN
  WCHAR* lpszSystemInfo; // pointer to system information
  DWORD cchBuff = 256; // size of user name
  WCHAR tchBuffer[UNLEN + 1]; // buffer for expanded string

  lpszSystemInfo = tchBuffer;

  // Get and display the user name.
  GetUserNameW(lpszSystemInfo, &cchBuff);

  //Unicode string needs to be converted
  userName = QString::fromWCharArray(lpszSystemInfo);
#elif defined Q_WS_X11
  register struct passwd *pw;
  pw = getpwuid(getuid());
  if (pw)
    userName = pw->pw_name;
#endif //#ifdef Q_WS_WIN

  return userName;
}
« Последнее редактирование: Август 02, 2010, 16:44 от Филоненко Михаил » Записан
shender
Гость
« Ответ #5 : Август 03, 2010, 12:54 »

Спасибо. Буду копать
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 23.