【发布时间】:2020-03-13 17:27:28
【问题描述】:
我想使用nsis installer 在C:\ProgramData 文件夹中安装一些应用程序数据。我想避免对其进行硬编码,因为它可能不在C: drive 上。
文档https://nsis.sourceforge.io/Docs/Chapter4.html 没有任何定义ProgramData 的常量。 nsis在ProgramData文件夹中的安装方式是什么?
【问题讨论】:
我想使用nsis installer 在C:\ProgramData 文件夹中安装一些应用程序数据。我想避免对其进行硬编码,因为它可能不在C: drive 上。
文档https://nsis.sourceforge.io/Docs/Chapter4.html 没有任何定义ProgramData 的常量。 nsis在ProgramData文件夹中的安装方式是什么?
【问题讨论】:
Microsoft 移动并重命名了 Vista 中的一些特殊文件夹。 %ProgramData% 是 CSIDL_COMMON_APPDATA,你可以在 NSIS 中获得该路径:
Section
SetShellVarContext all
MessageBox MB_OK "$LocalAppData"
SetOutPath "$LocalAppData\MyAppsData"
File /r mydata\*.*
SectionEnd
【讨论】:
你可以使用GetKnownFolderPath:
GetKnownFolderPath $0 {62AB5D82-FDC1-4DC3-A9DD-070D1D495D97} ; FOLDERID_ProgramData
MessageBox MB_OK $0
【讨论】: