Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


Сообщения: 2358
Благодарности: 559

Профиль | Отправить PM | Цитировать


Erik Pilsits написал хедер GetFolderPath.nsh, который позволяет получить путь к предопределённой папке в ОС
Используются функции SHGetFolderPath (для WinXP) и SHGetKnownFolderPath (для Vista и выше) и ряд констант и ID для папок.

С этими функциями можно конечно получать пути и обычным образом. Например, для COMMON_APPDATA :
Код: Выделить весь код
OutFile "GetFolderPath-test.exe"
!define CSIDL_COMMON_APPDATA "0x0023"        

Section  
System::Call "shell32::SHGetFolderPath(0, i ${CSIDL_COMMON_APPDATA}, 0, 0, t .r1)"  
MessageBox MB_OK "$1"
SectionEnd
Но GetFolderPath.nsh более универсален и чуть упрощает код.

Для XP получение пути интереса не представляет, т.к. практически все переменные предопределённых папок, уже есть в самом NSIS. Разве что, как альтернатива получения пути. А вот для Win7 и 8, где большое разнообразие специализированных папок, может пригодиться.
Вот комплект-пример :

Последний раз редактировалось MKN, 27-05-2020 в 16:17.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:37, 28-05-2013 | #382