Ich habe mehrere Skripte für inDesign erstellt. Jetzt möchte ich sie alle in einer Setup-Datei verteilen. Da sich inDesign-Skripte unter XP und Vista (oder höher) an verschiedenen Orten befinden, habe ich einige Probleme. Mein kompiliertes Setup funktioniert unter Windows XP einwandfrei, kopiert jedoch nichts in den Windows 7 AppData
-Ordner. Wenn ich den Ordner von AppData
in einen absoluten Pfad ändere, funktioniert dies.
[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;
2 Antworten
Die Konstante {userappdata}
wird in {{X1 aufgelöst }} unter Windows Vista eine neuere.
{userappdata}\Roaming
wird also in C:\Users\username\AppData\Roaming\Roaming
aufgelöst, was (wahrscheinlich) nicht das ist, was Sie wollen.
Unter Windows XP wird {userappdata}
in C:\Documents and Settings\username\Application Data
aufgelöst (nein Roaming
).
Daher glaube ich, dass Sie {userappdata}
auf allen Windows-Versionen, einschließlich XP, mit den gewünschten Ergebnissen verwenden können. Sie benötigen diese bedingten Einträge mit IsWindowsXP
und IsWindowsVista_or_7
nicht.
Mit anderen Worten, ich glaube, der Installationspfad ist unter Windows XP und Windows 7 gleich . In beiden Fällen befindet er sich unter SHGetFolderPath(CSIDL_APPDATA)
Was ist {userappdata}
in Inno Setup?
[Files]
Source: "Akruti Converter.jsx"; \
DestDir: "{userappdata}\Adobe\InDesign\Version 8.0\en_US\Scripts\Scripts Panel\Unicode Converters\Plain"
Randnotiz: Ihr IsWindowsVista_or_7
ist nur als "IsWindows7" implementiert. Unter Windows Vista wird nicht true zurückgegeben. Es sollte auch unter Windows 8/10 true zurückgeben.
Wenn Sie sich nur mit Distribution beschäftigen, können Sie Adobe AddOns in Betracht ziehen, das alle plattformbezogenen technischen Aspekte der Installation berücksichtigt.
Neue Fragen
inno-setup
Inno Setup ist ein Tool zum Erstellen von Setup-Programmen mit einer eingebetteten, von Pascal abgeleiteten Skriptsprache.