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;
3
coldbreeze16 27 Dez. 2015 im 15:25

2 Antworten

Beste Antwort

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.

6
Martin Prikryl 14 Mai 2020 im 07:51

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.

1
Loic 28 Dez. 2015 im 23:21