我已經爲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}'。 –