我已经为inDesign制作了几个脚本。现在我想将它们全部分发到安装文件中。由于inDesign脚本驻留在XP和Vista(或以上)的不同位置,因此我遇到了一些问题。我编译的安装程序在Windows XP下工作正常,但不会将任何内容复制到Windows 7 AppData
文件夹。当我将文件夹从AppData
更改为绝对路径时,它可以正常工作。Inno安装程序安装到AppData Windows Vista/7及更新版本上的漫游,但在Windows XP上的应用程序数据
[Files]
Source: "Akruti Converter.jsx"; DestDir: "{userappdata}\Roaming\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel\Unicode Converters\Plain"; Check: IsWindowsVista_or_7
Source: "Akruti Converter.jsx"; DestDir: "C:\Unicode Converters\Plain"
Source: "ShreeLipi v4,5,6 Converter.jsx"; DestDir: "{userappdata}\Roaming\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel\Unicode Converters\Plain"; Check: IsWindowsVista_or_7
Source: "Smart Akruti Converter.jsx"; DestDir: "{userappdata}\Roaming\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel\Unicode Converters\Smart"; Check: IsWindowsVista_or_7
Source: "Akruti Converter.jsx"; DestDir: "{userappdata}\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel\Unicode Converters\Plain"; Check: IsWindowsXP
Source: "ShreeLipi v4,5,6 Converter.jsx"; DestDir: "{userappdata}\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel\Unicode Converters\Plain"; Check: IsWindowsXP
Source: "Smart Akruti Converter.jsx"; DestDir: "{userappdata}\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel\Unicode Converters\Smart"; Check: IsWindowsXP
[Code]
function IsWindowsXP: Boolean;
var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
Result := Version.NTPlatform and (Version.Major = 5) and (Version.Minor = 1);
end;
function IsWindowsVista_or_7: Boolean;
var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
Result := Version.NTPlatform and (Version.Major = 6) and ((Version.Minor = 1));
end;
非常感谢!由于InnoSetup帮助文件中的文件夹常量列出了Vista和更新的非漫游应用程序数据文件夹,因此我认为这可能就是这种情况。你清除了我的怀疑。是的,我修改了“IsWindowsVista_or_7”,并忘记添加已删除的Version.Minor = 0。 – coldbreeze16
正确的代码将简单地为'Result:=(Version.Major> = 6);'表示“Windows Vista(6.0)及更新版本”。但是,你再也不需要这个代码,只需使用'{userappdata}'。 –