powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как получить значение переменной окружения USERPROFILE ?
5 сообщений из 5, страница 1 из 1
Как получить значение переменной окружения USERPROFILE ?
    #33011041
MissNoname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, нужно получить полный путь к папке "Мои документы". Функция GetEnvironment(environmentinfo) позволяет получить тип операционной системы, а как можно получить значение переменной окружения USERPROFILE ?
...
Рейтинг: 0 / 0
Как получить значение переменной окружения USERPROFILE ?
    #33011111
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужен путь к "Мои документы", то можно воспользоваться функицией 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
Как получить значение переменной окружения USERPROFILE ?
    #33011145
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Навскидку не вспомнил. Что то там про контекст вроде.
решил погуглить: Google > environment variable powerbuilder
I'm feeling lucky
О! Меняем Path на USERPROFILE.
...
Рейтинг: 0 / 0
Как получить значение переменной окружения USERPROFILE ?
    #33011154
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergeyосталось только всё это героически "обернуть"
а проще не геройствовать, а взять готовый сервис от Roy Kiesler тут
...
Рейтинг: 0 / 0
Как получить значение переменной окружения USERPROFILE ?
    #33011228
MissNoname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо !
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как получить значение переменной окружения USERPROFILE ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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