首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用inno- AppData在users AppData文件夹中安装文件

使用inno- AppData在users AppData文件夹中安装文件
EN

Stack Overflow用户
提问于 2013-03-14 20:48:33
回答 3查看 31.8K关注 0票数 16

我使用的是Inno-Setup版本5.5.3(a)。

代码语言:javascript
运行
复制
[Files]
Source: "C:\GPT\GPT.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\GPT\GPT.dat"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

我想将"GPT.dat“文件安装到自定义文件夹"GPT”中的users AppData文件夹中。

例如AppData\GPT\

例如,在我的delphi代码中,我在用户的AppData路径中创建了一个名为"GPT“的文件夹。这是我想要放置文件的位置

代码语言:javascript
运行
复制
var
  path: array[0..MAX_PATH] of char;

 SHGetFolderPath(0, CSIDL_APPDATA, 0, SHGFP_TYPE_CURRENT, @path);
 userPath:= Path;
 UserPath:= UserPath + '\GPT\';
 if not DirectoryExists(UserPath) then
   CreateDir(UserPath);

有人能告诉我如何编辑我的Inno脚本的文件部分来实现这一点吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-14 21:42:38

您需要使用仅映射到CSIDL_APPDATA项ID的{userappdata}常量作为文件的目标目录:

代码语言:javascript
运行
复制
[Files]
Source: "C:\GPT\GPT.dat"; DestDir: "{userappdata}\GPT\"; Flags: ignoreversion createallsubdirs recursesubdirs comparetimestamp

{userappdata} & {commonappdata}应用程序数据文件夹的路径。

代码语言:javascript
运行
复制
 CSIDL_APPDATA = {userappdata} = C:\Documents and Settings\username\Application Data
 CSIDL_COMMON_APPDATA = {commonappdata} = C:\Documents and Settings\All Users\Application Data
票数 24
EN

Stack Overflow用户

发布于 2018-05-25 20:33:35

您需要使用:{userappdata}

如果您查看Inno设置文档:

代码语言:javascript
运行
复制
{userappdata} = C:\Documents and Settings\username\AppData\Roaming\
{commonappdata} = C:\Documents and Settings\All Users\AppData\Roaming\

{localappdata}:本地(非漫游)应用程序数据文件夹的路径。

{userappdata} & {commonappdata}:Application Data文件夹的路径。

我使用:

代码语言:javascript
运行
复制
[Files]
Source: MyPath\* ;  Flags: recursesubdirs createallsubdirs; DestDir: {userappdata}\MySoftware\ ; Components: ConfigFiles

我的配置文件在:

C:\Users*\AppData\Roaming\MySoftware**

票数 5
EN

Stack Overflow用户

发布于 2014-02-03 18:33:29

如果我对Mirals注释的理解是正确的,那么使用{programdata}似乎更合适。

然而,在XP上没有{programdata},只有{commonappdata}或{userappdata},所以我必须使我的安装多样化。{programdata}是一个较晚的发明。

一个令人不安的陷阱是当桌面和userappdata被镜像到服务器(“漫游配置文件”)时,如果他们使用userappdata作为ini文件存储,这将大大减慢程序速度,至少这是我的经验。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15409739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档