我为 inDesign 制作了几个脚本。现在我想将它们全部分发到一个安装文件中。由于 inDesign 脚本驻留在 XP 和 Vista(或更高版本)上的不同位置,因此我遇到了一些问题。我编译的设置在 Windows XP 下运行良好,但不会将任何内容复制到 Windows 7AppData
文件夹。当我更改文件夹时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;
决心C:\Users\username\AppData\Roaming
在较新的 Windows Vista 上。
So {userappdata}\Roaming
决心C:\Users\username\AppData\Roaming\Roaming
,什么(可能)不是你想要的。
在 Windows XP 上,{userappdata}
决心C:\Documents and Settings\username\Application Data
(no Roaming
).
因此,我相信你可以使用{userappdata}
在所有版本的 Windows(包括 XP)上,都获得了预期的结果。您不需要那些条件条目IsWindowsXP
and IsWindowsVista_or_7
.
换句话说,我相信安装路径是same在 Windows XP 和 Windows 7 上。在这两种情况下,它都在SHGetFolderPath(CSIDL_APPDATA) https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpathw什么是{userappdata}
在 Inno 设置中。
[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/11 上它也应该返回 true。
See IsWindowsVistaOrNewer
在我的回答中在 Inno Setup 中确定 Windows 版本 https://stackoverflow.com/q/5849917/850848.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)