我为inDesign制作了几个脚本。现在我想将它们全部分发到安装文件中。由于inDesign脚本位于XP和Vista(或更高版本)的不同位置,因此我遇到了一些问题。我的编译设置在Windows XP下运行正常,但不会将任何内容复制到Windows 7 AppData
文件夹。当我将文件夹从AppData
更改为绝对路径时,它可以正常工作。
[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;
答案 0 :(得分:3)
The {userappdata}
constant在Windows Vista上解析为C:\Users\username\AppData\Roaming
更新。
所以{userappdata}\Roaming
解析为C:\Users\username\AppData\Roaming\Roaming
,什么(可能)不是你想要的。
在Windows XP上,{userappdata}
解析为C:\Documents and Settings\username\Application Data
(无Roaming
)。
因此,我相信您可以在所有版本的Windows(包括XP)上使用{userappdata}
,并获得所需的结果。您不需要使用IsWindowsXP
和IsWindowsVista_or_7
换句话说,我相信,Windows XP和Windows 7上的安装路径是相同。在这两种情况下,它都在SHGetFolderPath(CSIDL_APPDATA)
下,在{Inn}的{userappdata}
安装程序。
[Files]
Source: "Akruti Converter.jsx"; \
DestDir: "{userappdata}\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel\Unicode Converters\Plain"
旁注:您的IsWindowsVista_or_7
仅作为“IsWindows7”实施。它不会在Windows Vista上返回true。它也应该在Windows 8/10上返回true。
答案 1 :(得分:0)
如果您只是分发,您可以考虑Adobe AddOns,它将处理所有与平台相关的安装技术方面。