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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDesktopServices  (Прочитано 5847 раз)
spectre71
Гость
« : Декабрь 01, 2009, 11:45 »

Не понятно!
Что должен возвращать под Windows?
QDesktopServices::storageLocation(QDesktopServices::ApplicationsLocation);

Цитировать
QDesktopServices::ApplicationsLocation   3   Returns the user's applications.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Декабрь 01, 2009, 13:00 »

Открываем qdesktopservices_win.cpp, метод QDesktopServices::storageLocation и внимательно смотрим:

Код
C++ (Qt)
...
QSettings settings(QSettings::UserScope, QLatin1String("Microsoft"), QLatin1String("Windows"));
settings.beginGroup(QLatin1String("CurrentVersion/Explorer/Shell Folders"));
...
case ApplicationsLocation:
       return settings.value(QLatin1String("Programs")).toString();
...

Далее шагаем в реест и смотрим, что содержит Shell Folders. Видим, что Programs это путь
 к C:\Documents and Settings\<user name>\Start Menu\Programs
« Последнее редактирование: Декабрь 01, 2009, 13:06 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
crossly
Гость
« Ответ #2 : Декабрь 01, 2009, 13:31 »

прикольно.... а у тебя какая версия Qt??
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Декабрь 01, 2009, 14:00 »

4.5.3.

В 4.4.х и, разумеется, в 4.6 это тоже есть
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
crossly
Гость
« Ответ #4 : Декабрь 01, 2009, 14:34 »

4.5.3.

В 4.4.х и, разумеется, в 4.6 это тоже есть
понятно что есть.... просто немного в ином виде.... Улыбающийся
Код:
case ApplicationsLocation:
        if (SHGetSpecialFolderPath(0, path, CSIDL_PROGRAMS, FALSE))
            result = QString::fromWCharArray(path);
        break;
Записан
spectre71
Гость
« Ответ #5 : Декабрь 01, 2009, 16:08 »

Открываем qdesktopservices_win.cpp, метод QDesktopServices::storageLocation и внимательно смотрим:

Код
C++ (Qt)
...
QSettings settings(QSettings::UserScope, QLatin1String("Microsoft"), QLatin1String("Windows"));
settings.beginGroup(QLatin1String("CurrentVersion/Explorer/Shell Folders"));
...
case ApplicationsLocation:
       return settings.value(QLatin1String("Programs")).toString();
...

Далее шагаем в реест и смотрим, что содержит Shell Folders. Видим, что Programs это путь
 к C:\Documents and Settings\<user name>\Start Menu\Programs

Ну так я про тоже!
Какаое отношение "Applications Location" имеет к:
C:\Documents and Settings\<user name>\Start Menu\Programs

Дока по QT  иногда  - ужас
Вот если-бы ключ был "StartMenuPrograms" или "MenuPrograms" или "Programs", то было бы понятнее.
А лучше бы в доке нормально описали.

Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Декабрь 01, 2009, 23:42 »

понятно что есть.... просто немного в ином виде.... Улыбающийся

Да, в 4.6 вижу такое. До 4.6 использовался код который я привел выше
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
fuCtor
Гость
« Ответ #7 : Март 01, 2010, 08:35 »

Не буду создавать отдельную тему:

а как тогда получить под Windows "AppData / Roaming"?
Записан
SABROG
Гость
« Ответ #8 : Март 01, 2010, 09:04 »

QDesktopServices::ApplicationsLocation
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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