论坛风格切换切换到宽版
  • 7363阅读
  • 5回复

Inno Setup 如何根据系统版本不同解压不同的文件夹 [复制链接]

上一主题 下一主题
离线zhx
 

发帖
4
金钱
40
威望
4
只看楼主 倒序阅读 0 发表于: 2014-04-29
假设Inno 有如下文件夹
  1. [Files]
  2. Source: "dir1\*"; DestDir: "{app}\dir1";
  3. Source: "dir2\*"; DestDir: "{app}\dir2";

请问有没有什么办法,让程序决定解压哪一个文件夹?
比如用IsWin64判断,64位系统就释放dir1文件夹,32位系统就释放dir2文件夹。

查了下帮助,没发现有解压整个目录的函数。
我用的是restool大大的修改版,但是ExtractTemporaryFileEx也只能解压单个文件。
而[Components] 段和[Tasks] 段似乎也要靠用户操作。
在此先谢谢各位了。
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2014-04-30
你说的解压文件夹是什么意思?具体是要达到什么目的?是什么时候需要解压?
请把你想要进行的操作描述得具体一点。
离线zhx

发帖
4
金钱
40
威望
4
只看该作者 2 发表于: 2014-04-30
回 1楼(gnatix) 的帖子
gnatix:你说的解压文件夹是什么意思?具体是要达到什么目的?是什么时候需要解压?请把你想要进行的操作描述得具体一点。 (2014-04-30 02:04) 

就是我用Inno做了一个安装包,打包了dir1和dir2两个文件夹。
希望这个安装包在32位机器上安装时,安装包就把dir1文件夹释放到安装目录,而在64位机器上安装时,释放的就是dir2文件夹。
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 3 发表于: 2014-04-30
这个和临时解压文件无关,也就是说和 ExtractTemporaryFile 无关。你直接使用 Check 参数就行了。

[Files]
Source: "dir1\*"; DestDir: "{app}\dir1"; Check: not IsWin64
Source: "dir2\*"; DestDir: "{app}\dir2"; Check: IsWin64
离线zhx

发帖
4
金钱
40
威望
4
只看该作者 4 发表于: 2014-04-30
回 3楼(gnatix) 的帖子
gnatix:这个和临时解压文件无关,也就是说和 ExtractTemporaryFile 无关。你直接使用 Check 参数就行了。[Files]Source: "dir1\*"; DestDir: "{app}\dir1"; Check: not IsWin64Source: "dir2\*"; DestDir: "{app .. (2014-04-30 13:24) 

谢谢虎大,原来还有这么好用的东西
离线969511048

发帖
151
金钱
1440
威望
144
只看该作者 5 发表于: 2014-05-18
学习