Форум » [x]Harbour » Путь %COMMON_APPDATA% » Ответить

Путь %COMMON_APPDATA%

Andrey: Привет всем. Как определить путь к %COMMON_APPDATA% ? Чтобы работало во всех версиях Win. Из Минигуи пользуюсь типа: GetWindowsDirectory() и т.д. Смотрел h_winapimisc.prg но там тоже не увидел...

Ответов - 13

Dima: А так если getenv("COMMON_APPDATA") ?

Andrey: Попробую... Нашёл https://msdn.microsoft.com/en-us/library/aa367992%28v=vs.85%29.aspx Location The directory location depends on operating system. XP: C:\Documents and Settings\All Users\ Vista / Win7: C:\ProgramData\ Видно нужно и там и там смотреть...

Andrey: Dima пишет: А так если getenv("COMMON_APPDATA") ? MsgDebug( getenv("COMMON_APPDATA") ) Возвращает на Win8 -> ""


Dima: Andrey пишет: "COMMON_APPDATA" Потому что надо COMMON APPDATA без подчеркивания. А для чего это тебе ? Посмотри тут еще вдруг что нужное найдешь https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%80%D0%B5%D0%B4%D1%8B_Windows

Andrey: В МиниГуи есть классная функция: #define CSIDL_PROFILE 0x0028 // USERPROFILE и другие define C_getspecialfolder(CSIDL_PROFILE) Я её даже в хХарбор портировал. А как узнать CSIDL_??? для %COMMON_APPDATA% ?

Andrey: Dima пишет: Посмотри тут еще вдруг что нужное найдешь Спасибо БОЛЬШОЕ за ссылку ! Dima пишет: А для чего это тебе ? Да размещать свои временные файлы для программ. Почему то все так делают. Да и читать настоечные файлы чужих программ. Для HASP HL, он там свои настройки хранит, их читать нужно для своей программы.

Andrey: Dima пишет: Потому что надо COMMON APPDATA без подчеркивания. Нет, не работает... Возвращает "", у меня Win8 и set переменных нет такой переменной. У меня Win8 и присутствуют ДВА каталога: C:\Documents and Settings\All Users C:\ProgramData и в обоих каталогах одинаковые папки с установленным софтом Так что вопрос остаётся открытым. Как получить путь - C:\Documents and Settings\All Users\ ?

Dima: Andrey пишет: C:\Documents and Settings\All Users\ MsgDebug( getenv("ALLUSERSPROFILE")) Похоже по ссылке на вики ты не ходил а если ходил то не смотрел .

Andrey: Нашёл сейчас, ты опередил. Спасибо ! Dima пишет: MsgDebug( getenv("ALLUSERSPROFILE")) в Win8 -> C:\ProgramData в XP -> C:\Documents And Settings\All Users В BCC в файле userenv.h нашёл GetAllUsersProfilesDirectory. Интересно, а как в Харборе обратиться к этой функции ?

Dima: Andrey пишет: В BCC в файле userenv.h нашёл GetAllUsersProfilesDirectory. Интересно, а как в Харборе обратиться к этой функции ? А зачем ? GetAllUsersProfilesDirectory // // Returns the path to the root of the All Users profile Это тоже что getenv("ALLUSERSPROFILE")

Andrey: Dima пишет: Это тоже что getenv("ALLUSERSPROFILE") Понял, СПАСИБО ! Остался один вопрос, а нафига в Win8 присутствуют ДВА каталога: C:\Documents and Settings\All Users C:\ProgramData и в обоих каталогах одинаковые папки с установленным софтом Я при переезде на Windows2008 Server тоже с такой бякой столкнулся...

Dima: Andrey пишет: Остался один вопрос, а нафига в Win8 присутствуют ДВА каталога: фиг знает , гуглить надо. https://social.technet.microsoft.com/Forums/ru-RU/3e8ddcf6-e1ac-434e-ab21-c97495ad7331/-program-data?forum=vistaru

Dima: Andrey пишет: Да размещать свои временные файлы для программ. Я всегда со времен Clipper весь временный хлам ложил в системную папку TEMP (TMP) Windows. После перехода на Harbour времянок стало меньше ибо все временные DBF создаю в памяти (HbMemio).



полная версия страницы