Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как получить значение переменной окружения USERPROFILE ? / 5 сообщений из 5, страница 1 из 1
12.04.2005, 15:14
    #33011041
MissNoname
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значение переменной окружения USERPROFILE ?
Например, нужно получить полный путь к папке "Мои документы". Функция GetEnvironment(environmentinfo) позволяет получить тип операционной системы, а как можно получить значение переменной окружения USERPROFILE ?
...
Рейтинг: 0 / 0
12.04.2005, 15:35
    #33011111
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значение переменной окружения USERPROFILE ?
если нужен путь к "Мои документы", то можно воспользоваться функицией winapi

Код: plaintext
1.
 HRESULT SHGetSpecialFolderLocation(HWND hwndOwner,
                      int nFolder, LPITEMIDLIST* ppidl);

с nFolder = CSIDL_COMMON_DOCUMENTS

а затем по полученному элементу в массиве ppidl получит путь:
Код: plaintext
1.
BOOL SHGetPathFromIDList(LPCITEMIDLIST pidl,
                          LPSTR pszPath);

и освободить память:
Код: plaintext
HRESULT SHGetMalloc(LPMALLOC * ppMalloc); 

-----пример из той же статьи в MSDN на Си---------------------
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
void WorkWithSpecialFolder() {
   // Allocate a pointer to an Item ID list
   LPITEMIDLIST pidl;

   // Get a pointer to an item ID list that
   // represents the path of a special folder
   HRESULT hr = SHGetSpecialFolderLocation(NULL, CSIDL_PERSONAL, &pidl);

   // Convert the item ID list's binary
   // representation into a file system path
   char szPath[_MAX_PATH];
   BOOL f = SHGetPathFromIDList(pidl, szPath);

   // Allocate a pointer to an IMalloc interface
   LPMALLOC pMalloc;

   // Get the address of our task allocator's IMalloc interface
   hr = SHGetMalloc(&pMalloc);

   // Free the item ID list allocated by SHGetSpecialFolderLocation
   pMalloc->Free(pidl);

   // Free our task allocator
   pMalloc->Release();

   // Work with the special folder's path (contained in szPath)
			•
			•
			•
}

осталось только всё это героически "обернуть" в объявления и вызовы из powerBuilder'а.. проблема может появиться в объявлении и передачи массива

пример "оборачивания" и прочего можно стащить на http://pbdr.com/software/comp/bff.zip
...
Рейтинг: 0 / 0
12.04.2005, 15:46
    #33011145
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значение переменной окружения USERPROFILE ?
Навскидку не вспомнил. Что то там про контекст вроде.
решил погуглить: Google > environment variable powerbuilder
I'm feeling lucky
О! Меняем Path на USERPROFILE.
...
Рейтинг: 0 / 0
12.04.2005, 15:48
    #33011154
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значение переменной окружения USERPROFILE ?
savosin_sergeyосталось только всё это героически "обернуть"
а проще не геройствовать, а взять готовый сервис от Roy Kiesler тут
...
Рейтинг: 0 / 0
12.04.2005, 16:06
    #33011228
MissNoname
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значение переменной окружения USERPROFILE ?
Спасибо !
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как получить значение переменной окружения USERPROFILE ? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]