From f8f8983e52c7af06cec88a280d9cc00cdc709eb0 Mon Sep 17 00:00:00 2001 From: RKrom Date: Tue, 3 Aug 2010 12:53:30 +0000 Subject: [PATCH] Enhanced Installer git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@766 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4 --- .../releases/innosetup/IssProc/IssProc.dll | Bin 0 -> 188918 bytes .../innosetup/IssProc/IssProcLanguage.ini | Bin 0 -> 8420 bytes .../innosetup/scripts/isxdl/czech.ini | 53 +++++ .../innosetup/scripts/isxdl/english.ini | 49 +++++ .../innosetup/scripts/isxdl/french.ini | 45 +++++ .../innosetup/scripts/isxdl/french2.ini | 45 +++++ .../innosetup/scripts/isxdl/french3.ini | 46 +++++ .../innosetup/scripts/isxdl/german.ini | 46 +++++ .../innosetup/scripts/isxdl/german2.ini | 45 +++++ .../innosetup/scripts/isxdl/german3.ini | 45 +++++ .../innosetup/scripts/isxdl/isxdl.dll | Bin 0 -> 124416 bytes .../innosetup/scripts/isxdl/isxdl.iss | 12 ++ .../innosetup/scripts/isxdl/norwegian.ini | 47 +++++ .../innosetup/scripts/isxdl/polish.ini | 45 +++++ .../innosetup/scripts/isxdl/portugues.ini | 45 +++++ .../innosetup/scripts/isxdl/portuguese.ini | 46 +++++ .../innosetup/scripts/isxdl/russian.ini | 50 +++++ .../innosetup/scripts/isxdl/spanish.ini | 46 +++++ .../innosetup/scripts/isxdl/swedish.ini | 48 +++++ .../releases/innosetup/scripts/products.iss | 188 ++++++++++++++++++ .../innosetup/scripts/products/dotnetfx11.iss | 27 +++ .../scripts/products/dotnetfx11lp.iss | 27 +++ .../scripts/products/dotnetfx11sp1.iss | 27 +++ .../innosetup/scripts/products/dotnetfx20.iss | 32 +++ .../scripts/products/dotnetfx20lp.iss | 31 +++ .../scripts/products/dotnetfx20sp1.iss | 29 +++ .../scripts/products/dotnetfx20sp1lp.iss | 31 +++ .../scripts/products/dotnetfx20sp2.iss | 27 +++ .../scripts/products/dotnetfx20sp2lp.iss | 31 +++ .../innosetup/scripts/products/dotnetfx35.iss | 28 +++ .../scripts/products/dotnetfx35lp.iss | 27 +++ .../scripts/products/dotnetfx35sp1.iss | 28 +++ .../scripts/products/dotnetfx35sp1lp.iss | 27 +++ .../scripts/products/fileversion.iss | 23 +++ .../innosetup/scripts/products/ie6.iss | 27 +++ .../innosetup/scripts/products/iis.iss | 12 ++ .../innosetup/scripts/products/jet4sp8.iss | 23 +++ .../innosetup/scripts/products/kb835732.iss | 27 +++ .../innosetup/scripts/products/kb886903.iss | 32 +++ .../innosetup/scripts/products/kb928366.iss | 32 +++ .../innosetup/scripts/products/mdac28.iss | 24 +++ .../innosetup/scripts/products/msi20.iss | 21 ++ .../innosetup/scripts/products/msi31.iss | 21 ++ .../scripts/products/sql2005express.iss | 32 +++ .../innosetup/scripts/products/winversion.iss | 47 +++++ Greenshot/releases/innosetup/setup.iss | 134 ++++++++++--- 46 files changed, 1698 insertions(+), 30 deletions(-) create mode 100644 Greenshot/releases/innosetup/IssProc/IssProc.dll create mode 100644 Greenshot/releases/innosetup/IssProc/IssProcLanguage.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/czech.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/english.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/french.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/french2.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/french3.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/german.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/german2.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/german3.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/isxdl.dll create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/isxdl.iss create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/norwegian.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/polish.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/portugues.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/portuguese.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/russian.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/spanish.ini create mode 100644 Greenshot/releases/innosetup/scripts/isxdl/swedish.ini create mode 100644 Greenshot/releases/innosetup/scripts/products.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx11.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx11lp.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx11sp1.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx20.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx20lp.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1lp.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2lp.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx35.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx35lp.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1lp.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/fileversion.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/ie6.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/iis.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/jet4sp8.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/kb835732.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/kb886903.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/kb928366.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/mdac28.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/msi20.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/msi31.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/sql2005express.iss create mode 100644 Greenshot/releases/innosetup/scripts/products/winversion.iss diff --git a/Greenshot/releases/innosetup/IssProc/IssProc.dll b/Greenshot/releases/innosetup/IssProc/IssProc.dll new file mode 100644 index 0000000000000000000000000000000000000000..798cb5aca73c6c4ad1e350ff22ea08c302789f08 GIT binary patch literal 188918 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 literal 0 HcmV?d00001 diff --git a/Greenshot/releases/innosetup/IssProc/IssProcLanguage.ini b/Greenshot/releases/innosetup/IssProc/IssProcLanguage.ini new file mode 100644 index 0000000000000000000000000000000000000000..0c093253773cd6706c9351bc9617ced15995b1e6 GIT binary patch literal 8420 zcmeI1+in|G6oyxnJ0#v=t|%ZH?t4ILk`@IO8ab^HvMS^_c4BIeBOe;lH{xY@1>SsjAAHrDll<@$c5>yCb(+OIaz zRj&J<4SlVv-%&xC>pHU|QA})V=eqt}9LD+_ie_kS+p!bz?%Nkydu}apI2C0}-|$b8 zKebORbSbZ%Xy=J&LfSyTC(@y7mwGm_GvD8@al`^NZ;K-7d#rmj7}|wacPu27a=tV^ znf)Y+seT9g9&10GTK3lEAg`zUO!5P(Ol#b~l0`kqLpv-AZO8f@`2AR@pifWqeXX~} zsU>V$u46}6a2eNY}^c+6^ZC>iWOkep0bhA%)01X{8g?-M=& zSe2v^({+Bc{+_sox3dmkymVjZ_U1}PL?2!Y&xIG4eP`BGCSrSE7>vdBx~8x7jNB!1 zi8Nwp8Q*#9=+$)0USD}R=puh3n~2$X3jIsRb64MeA^lwPgX-~BenXGZBIH3 zi>QZ&dLFs6Sii`OpvF7x!VV&~;oL`sOsWxi1A^Exb>6Wvd|O6di9)J}d%_~uekyUY zv7_G76E}8KS*jV4*{&o|k&rkWZB<@Xs>k-3Fev4~??4`+N8#5xZFLRW(%w2{xdL5P z&v_YCeRkW-jV`jz?48<&m%n(4+D^}<$EE!FQ1iEL&wnp}r^*hpxy;>Er(%w&=F|Tn zZ&%IThN6+_29#oks!s^?-D<|)<{B-Us!7AO<>=2_J>?AX#RLPThit5idos{m(gtxsFGjh2e2u*AEjmHe zgV2Vqn|f|r*7w9ex^whE5UAUcY+!=G8oKhNumW4K8jZn`{UhB+4~^NLnVl7EInq_x zdw-XOfjE@tL-k73@SLYF2*=9y7H5sv_sCvoV*ExcoE$)IBm|+WcVM2dkJU%^M6^?3 zl6*6t15peWduP3c)vY!4;kqtFe6`=!J8ZeOy#;MUx?uO^wXO{|Q1JKgmYJ8?zW6au zL|(AB>3On_9{H_!|EbvN3R$$q+xtS2E8;14T^CKePu&a5Nkk535VGq`S1F%od3_}c zPC^k=ZzP4&bes#K1`wSWz8j8Y^T6KAaw0i5_Rp?{+;>`yX^ieWavG*XELxtY`-Mi4 zft>AQFVf>pz^Qn)q)ANn+##>)l*IN_*LB=7)tISk{BJDY5#L?6E!8736~sFBM4FR!hj8}nJpdQL7I3|GN$UvW9{?jCubZxFmgmp>4O zaaN#W#{XZM-t#xnxN6P(PDt|RWOn}iMb9=^u9Df${0tIrPa?Own+|h_+-|5sa>kGM Nlz}AgjXw5h{0DJR8%_WK literal 0 HcmV?d00001 diff --git a/Greenshot/releases/innosetup/scripts/isxdl/czech.ini b/Greenshot/releases/innosetup/scripts/isxdl/czech.ini new file mode 100644 index 000000000..4025760bf --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/isxdl/czech.ini @@ -0,0 +1,53 @@ +[strings] + +; Translation (c) 2005 Martin Kozák (martin.kozak@openoffice.cz) + +; General +100=Stažení souboru +101=Pøejete si pøerušit stahování? +102=%1 (%2 z %3) +103=%1 KB +104=%1 KB z %2 KB (%3%) + +; Status information +110=Získávání informací o souboru... +111=Pøesmìrování na %1 +112=Odesílání požadavku... +113=Zpracování %1 +114=Spojení s %1 navázáno +115=Pøijímání... +116=Pøipojování k %1 + +; Error messages +120=Chyba pøi pøipojování k síti Internet.\n\n%1 +121=Chyba pøi otevírání %1.\n\nServer nastavil návratový kód %2. +122=Chyba pøi ètení URL.\n\n%1 +123=Chyba pøi zápisu do souboru %1.\n\n%2 +124=Chyba pøi otevírání souboru %1.\n\n%2 +125='%1' není platné URL. +126=Chyba pøi otevírání %1.\n\n%2 +127=Chyba pøi zasílání požadavku.\n\n%1 +128=Nepodporovaný protokol. Podporovány jsou pouze protokoly HTTP a FTP. +129=Pokus o pøipojení k %1 selhalo.\n\n%2 +130=Pokus o získání návratového kódu serveru selhal.\n\n%1 +131=Chyba pøi zadávání požadavku na soubor.\n\n%1 + +; Other +144=O knihovnì... +146=Stažení komponent +147=Prùvodce instalací stahuje pøídavné komponenty do vašeho poèítaèe. + +; labels +160=Soubor: +161=Pøenosová rychlost: +162=Stav: +163=Uplynulý èas: +164=Zbývající èas: +165=Zpracovávaný soubor: +166=Celkový prùbìh: +167=Zrušit +168=OK +169=Uživatelské jméno a heslo +170=Uživatelské jméno: +171=Heslo: + diff --git a/Greenshot/releases/innosetup/scripts/isxdl/english.ini b/Greenshot/releases/innosetup/scripts/isxdl/english.ini new file mode 100644 index 000000000..03176edde --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/isxdl/english.ini @@ -0,0 +1,49 @@ +[strings] +; General +100=File Download +101=Do you want to cancel the download? +102=%1 (%2 of %3) +103=%1 KB +104=%1 KB of %2 KB (%3%) + +; Status information +110=Getting file information... +111=Redirecting to %1 +112=Sending request... +113=Resolving %1 +114=Connected to %1 +115=Receiving... +116=Connecting to %1 + +; Error messages +120=Error connecting to Internet.\n\n%1 +121=Error opening %1.\n\nThe server returned status code %2. +122=Error reading URL.\n\n%1 +123=Error writing file %1.\n\n%2 +124=Error opening file %1.\n\n%2 +125='%1' is an invalid URL. +126=Error opening %1.\n\n%2 +127=Error sending request.\n\n%1 +128=Unsupported protocol. Only HTTP and FTP protocols are supported. +129=Failed to connect to %1.\n\n%2 +130=Failed to query status code.\n\n%1 +131=Error requesting file.\n\n%1 + +; Other +144=About... +146=Download +147=Setup is now downloading additional files to your computer. + +; labels +160=File: +161=Speed: +162=Status: +163=Elapsed Time: +164=Remaining Time: +165=Current File: +166=Overall Progress: +167=Cancel +168=OK +169=User Name and Password +170=User Name: +171=Password: diff --git a/Greenshot/releases/innosetup/scripts/isxdl/french.ini b/Greenshot/releases/innosetup/scripts/isxdl/french.ini new file mode 100644 index 000000000..db802535e --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/isxdl/french.ini @@ -0,0 +1,45 @@ +[strings] +; General +100=Téléchargement des fichiers... +101=Souhaitez-vous annuler le téléchargement ? +102=%1 (%2 / %3) +103=%1 Ko +104=%1 Ko / %2 Ko (%3%) + +; Etat du téléchargement +110=Accès au fichier... +111=Redirection vers %1 +112=Envoi de la requête... +113=Recherche %1 +114=Connecté à %1 +115=Réception... +116=Connexion à %1 + +; Messages d'erreur +120=Impossible de se connecter à Internet.\n\n%1 +121=Impossible d'ouvrir %1.\n\nLe serveur a renvoyé le code d'erreur %2. +122=Impossible de lire l'adresse.\n\n%1 +123=Impossible de créer le fichier %1.\n\n%2 +124=Impossible d'ouvrir le fichier %1.\n\n%2 +125='%1' est une adresse incorrecte. +126=Impossible d'ouvrir %1.\n\n%2 +127=Impossible d'accéder au serveur.\n\n%1 +128=Protocole non supporté. Seuls les protocoles HTTP et FTP sont pris en charge. +129=Impossible de se connecter à %1.\n\n%2 +130=Impossible de récupérer le code d'état.\n\n%1 +131=Impossible de récupérer le fichier.\n\n%1 + +; Autre +144=A propos... +146=Téléchargement +147=Certains fichiers requis vont être téléchargés. + +; Labels +160=Fichier : +161=Vitesse : +162=Etat : +163=Temps écoulé : +164=Temps restant : +165=Fichier courant : +166=Tous les fichiers : +167=Annuler diff --git a/Greenshot/releases/innosetup/scripts/isxdl/french2.ini b/Greenshot/releases/innosetup/scripts/isxdl/french2.ini new file mode 100644 index 000000000..b850990fb --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/isxdl/french2.ini @@ -0,0 +1,45 @@ +[strings] +; General +100=Téléchargement de fichier +101=Voulez vous annuler le téléchargement ? +102=%1 (%2 de %3) +103=%1 KB +104=%1 KB de %2 KB (%3%) + +; Status information +110=Réception des informations du fichier... +111=Redirection vers %1 +112=envoie de la demande... +113=Résolution %1 +114=Connecté a %1 +115=Réception... +116=Connexion à %1 + +; Error messages +120=Erreur de connexion à Internet.\n\n%1 +121=Erreur d'ouverture%1.\n\nLe Serveur à répondu par le code d'état %2. +122=Erreur de lecture de l'URL.\n\n%1 +123=Erreur d'écriture du fichier %1.\n\n%2 +124=Erreur d'ouverture du fichier %1.\n\n%2 +125='%1' est une URL invalide. +126=Erreur d’ouverture %1.\n\n%2 +127=Erreur pendant l'envoi de la demande.\n\n%1 +128=Protocole non supporté. Seuls les protocoles HTTP et FTP sont acceptés. +129=Echec de connexion à %1.\n\n%2 +130=Echec d'obtention du code d'état.\n\n%1 +131=Erreur lors de la demande du fichier.\n\n%1 + +; Other +144=A Propos... +146=Téléchargement +147=LiveUpdate télécharge maintenant des fichiers complémentaires sur votre ordinateur. + +; labels +160=Fichier: +161=Vitesse: +162=Etat: +163=Temps écoulé: +164=Temps restant: +165=Fichier en cours: +166=Avancement global: +167=Annuler diff --git a/Greenshot/releases/innosetup/scripts/isxdl/french3.ini b/Greenshot/releases/innosetup/scripts/isxdl/french3.ini new file mode 100644 index 000000000..e8d1e4e36 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/isxdl/french3.ini @@ -0,0 +1,46 @@ +; By Fabien ILLIDE (fabienillide@users.sourceforge.net) +[strings] +; General +100=Téléchargement de fichier +101=Voulez-vous annuler le téléchargement ? +102=%1 (%2 de %3) +103=%1 Ko +104=%1 Ko de %2 Ko (%3%) + +; Status information +110=Obtention des informations du fichier... +111=Redirection vers %1 +112=Envoi de la requête... +113=Résolution de %1 +114=Connecté à %1 +115=Réception... +116=Connexion à %1 + +; Error messages +120=Erreur de connexion à Internet.\n\n%1 +121=Erreur en ouvrant %1.\n\nLe serveur à retourné le code d'état %2. +122=Erreur de lecture d'URL.\n\n%1 +123=Erreur d'écriture pour %1.\n\n%2 +124=Erreur en ouvrant le fichier %1.\n\n%2 +125='%1' est une URL invalide. +126=Erreur en ouvrant %1.\n\n%2 +127=Erreur d'envoi de requête.\n\n%1 +128=Protocole non supporté. Seuls les protocoles HTTP et FTP sont supportés. +129=Echec de connexion à %1.\n\n%2 +130=Echec de demande du code d'état.\n\n%1 +131=Erreur en demandant le fichier.\n\n%1 + +; Other +144=A propos... +146=Télécharger +147=L'installateur télécharge maintenant les fichiers additionnels sur votre ordinateur. + +; labels +160=Fichier : +161=Vitesse : +162=Etat : +163=Temps écoulé : +164=Temps restant : +165=Fichier en cours : +166=Avancement global : +167=Annuler diff --git a/Greenshot/releases/innosetup/scripts/isxdl/german.ini b/Greenshot/releases/innosetup/scripts/isxdl/german.ini new file mode 100644 index 000000000..77f443966 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/isxdl/german.ini @@ -0,0 +1,46 @@ +;by E. Wörner +[strings] +; General +100=Dateidownload +101=Möchten Sie den Download der Dateien abbrechen? +102=%1 (%2 von %3) +103=%1 KB +104=%1 KB von %2 KB (%3%) + +; Status information +110=Empfang von Dateiinformationen... +111=Weiterleitung zu %1 +112=Senden der Anfrage... +113=Auflösen von %1 +114=Verbunden mit %1 +115=Empfang... +116=Verbinden mit %1 + +; Error messages +120=Fehler bei der Herstellung einer Verbindung ins Internet.\n\n%1 +121=Fehler beim Öffnen von %1.\n\nDer Server sendete Code %2. +122=Fehler beim Lesen der URL.\n\n%1 +123=Fehler beim Schreiben der Datei %1.\n\n%2 +124=Fehler beim Öffnen der Datei %1.\n\n%2 +125='%1' ist eine ungültige URL. +126=Fehler beim Öffnen von %1.\n\n%2 +127=Fehler beim Senden der Anfrage.\n\n%1 +128=Nicht unterstütztes Protokoll. FTP und HTTP sind die einzigen unterstützten Protokolle. +129=Fehler beim Verbinden mit %1.\n\n%2 +130=Fehler beim Auflösen des Statuscodes.\n\n%1 +131=Fehler beim Anfordern einer Datei.\n\n%1 + +; Other +144=Über... +146=Download +147=Setup lädt jetzt zusätzliche Dateien für das Setup. + +; labels +160=Datei: +161=Geschwindigkeit: +162=Status: +163=Vergangene Zeit: +164=Verbleibende Zeit: +165=Aktuelle Datei: +166=Gesamter Fortschritt: +167=Abbrechen diff --git a/Greenshot/releases/innosetup/scripts/isxdl/german2.ini b/Greenshot/releases/innosetup/scripts/isxdl/german2.ini new file mode 100644 index 000000000..0a4bf0c86 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/isxdl/german2.ini @@ -0,0 +1,45 @@ +[strings] +; General +100=Datei herunterladen +101=Möchten Sie das Herunterladen der Datei abbrechen? +102=%1 (%2 von %3) +103=%1 KB +104=%1 KB von %2 KB (%3%) + +; Status information +110=Dateiinformationen werden ermittelt... +111=Weitervermittlung zu %1 +112=Anforderung wird gesendet... +113=Auflösen von %1 +114=Mit %1 verbunden +115=Empfang... +116=Verbinden mit %1 + +; Error messages +120=Fehler beim Verbinden mit dem Internet.\n\n%1 +121=Fehler beim Öffnen von %1.\n\nDer Server hat folgenden Statuscode gemeldet %2. +122=Fehler beim Lesen der URL.\n\n%1 +123=Fehler beim Schreiben der Datei %1.\n\n%2 +124=Fehler beim Öffnen der Datei %1.\n\n%2 +125='%1' ist eine ungültige URL. +126=Fehler beim Öffnen von %1.\n\n%2 +127=Fehler beim Senden der Anforderung.\n\n%1 +128=Protokoll wird nicht unterstützt. Nur HTTP und FTP werden unterstützt. +129=Verbindung zu %1 fehlgeschlagen.\n\n%2 +130=Fehler bei der Abfrage des Statuscodes.\n\n%1 +131=Fehler bei der Anforderung der Datei.\n\n%1 + +; Other +144=Über... +146=Download +147=Das Setup lädt nun zusätzliche Dateien auf Ihren Computer. + +; labels +160=Datei: +161=Geschwindigkeit: +162=Status: +163=Bisherige Zeit: +164=Verbleibende Zeit: +165=Derzeitige Datei: +166=Gesamter Vorgang: +167=Abbrechen diff --git a/Greenshot/releases/innosetup/scripts/isxdl/german3.ini b/Greenshot/releases/innosetup/scripts/isxdl/german3.ini new file mode 100644 index 000000000..58f1b716d --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/isxdl/german3.ini @@ -0,0 +1,45 @@ +[strings] +; General +100=Datei-Download +101=Möchten Sie das Herunterladen abbrechen? +102=%1 (%2 von %3) +103=%1 KB +104=%1 KB von %2 KB (%3%) + +; Status information +110=Ermittle Datei-Informationen... +111=Leite um nach %1 +112=Sende Anforderung... +113=Auflösen %1 +114=Verbunden mit %1 +115=Empfange... +116=Verbinde mit %1 + +; Error messages +120=Fehler beim Verbinden mit dem Internet.\n\n%1 +121=Fehler beim Öffnen von %1.\n\nDer Server meldet Statuscode %2. +122=Fehler beim Lesen der URL.\n\n%1 +123=Fehler beim Schreiben der Datei %1.\n\n%2 +124=Fehler beim Öffnen der Datei %1.\n\n%2 +125='%1' ist eine ungültige URL. +126=Fehler beim Öffnen von %1.\n\n%2 +127=Fehler beim Senden der Anforderung.\n\n%1 +128=Nicht unterstütztes Protokoll. Nur HTTP- and FTP-Protokolle werden unterstützt. +129=Verbindung fehlgeschlagen: %1.\n\n%2 +130=Abfragen des Statuscodes fehlgeschlagen.\n\n%1 +131=Fehler beim Anfordern der Datei.\n\n%1 + +; Other +144=Über... +146=Download +147=Setup lädt nun weitere Dateien aus dem Internet auf Ihren Computer herunter. + +; labels +160=Datei: +161=Geschwindigkeit: +162=Status: +163=Verstrichene Zeit: +164=Verbleibende Zeit: +165=Aktuelle Datei: +166=Gesamter Download: +167=Abbrechen diff --git a/Greenshot/releases/innosetup/scripts/isxdl/isxdl.dll b/Greenshot/releases/innosetup/scripts/isxdl/isxdl.dll new file mode 100644 index 0000000000000000000000000000000000000000..d227bcad82b145e18a122348dab7227d3816bf90 GIT binary patch literal 124416 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 0 then begin + DependencyPage := CreateOutputProgressPage(CustomMessage('depinstall_title'), CustomMessage('depinstall_description')); + DependencyPage.Show; + + for i := 0 to productCount - 1 do begin + DependencyPage.SetText(FmtMessage(CustomMessage('depinstall_status'), [products[i].Title]), ''); + DependencyPage.SetProgress(i, productCount); + + if Exec(products[i].File, products[i].Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then begin + //success; ResultCode contains the exit code + if ResultCode = 0 then + finishCount := finishCount + 1 + else begin + Result := false; + break; + end; + end else begin + //failure; ResultCode contains the error code + Result := false; + break; + end; + end; + + //only leave not installed products for error message + for i := 0 to productCount - finishCount - 1 do begin + products[i] := products[i+finishCount]; + end; + SetArrayLength(products, productCount - finishCount); + + DependencyPage.Hide; + end; +end; + +function PrepareToInstall(var NeedsRestart: Boolean): String; +var + i: Integer; + s: string; +begin + if not InstallProducts() then begin + s := CustomMessage('depinstall_error'); + + for i := 0 to GetArrayLength(products) - 1 do begin + s := s + #13 + ' ' + products[i].Title; + end; + + Result := s; + end; +end; + +function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; +var + s: string; +begin + if downloadMemo <> '' then + s := s + CustomMessage('depdownload_memo_title') + ':' + NewLine + FmtMessage(downloadMemo, [Space]) + NewLine; + if installMemo <> '' then + s := s + CustomMessage('depinstall_memo_title') + ':' + NewLine + FmtMessage(installMemo, [Space]) + NewLine; + + s := s + MemoDirInfo + NewLine + NewLine + MemoGroupInfo + + if MemoTasksInfo <> '' then + s := s + NewLine + NewLine + MemoTasksInfo; + + Result := s +end; + +function ProductNextButtonClick(CurPageID: Integer): Boolean; +begin + Result := true; + + if CurPageID = wpReady then begin + + if downloadMemo <> '' then begin + //change isxdl language only if it is not english because isxdl default language is already english + if ActiveLanguage() <> 'en' then begin + ExtractTemporaryFile(CustomMessage('isxdl_langfile')); + isxdl_SetOption('language', ExpandConstant('{tmp}{\}') + CustomMessage('isxdl_langfile')); + end; + //isxdl_SetOption('title', FmtMessage(SetupMessage(msgSetupWindowTitle), [CustomMessage('appname')])); + + if SuppressibleMsgBox(FmtMessage(CustomMessage('depdownload_msg'), [downloadMessage]), mbConfirmation, MB_YESNO, IDYES) = IDNO then + Result := false + else if isxdl_DownloadFiles(StrToInt(ExpandConstant('{wizardhwnd}'))) = 0 then + Result := false; + end; + end; +end; + +function IsX64: Boolean; +begin + Result := Is64BitInstallMode and (ProcessorArchitecture = paX64); +end; + +function IsIA64: Boolean; +begin + Result := Is64BitInstallMode and (ProcessorArchitecture = paIA64); +end; + +function GetURL(x86, x64, ia64: String): String; +begin + if IsX64() and (x64 <> '') then + Result := x64; + if IsIA64() and (ia64 <> '') then + Result := ia64; + + if Result = '' then + Result := x86; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx11.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx11.iss new file mode 100644 index 000000000..314f6ada5 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx11.iss @@ -0,0 +1,27 @@ +// requires Windows 2000; Windows Server 2003 Service Pack 1 for Itanium-based Systems; Windows Server 2003 x64 editions; Windows Server 2008 Datacenter; Windows Server 2008 Enterprise; Windows Server 2008 for Itanium-based Systems; Windows Server 2008 Standard; Windows Vista Business; Windows Vista Enterprise; Windows Vista Home Basic; Windows Vista Home Premium; Windows Vista Starter; Windows Vista Ultimate; Windows XP; Windows XP Professional x64 Edition; Windows NT 4.0 Service Pack 6a +// requires internet explorer 5.0.1 or higher +// http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3 + +[CustomMessages] +dotnetfx11_title=.NET Framework 1.1 + +en.dotnetfx11_size=23.1 MB +de.dotnetfx11_size=23,1 MB + + +[Code] +const + dotnetfx11_url = 'http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe'; + +procedure dotnetfx11(); +var + version: cardinal; +begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'Install', version); + if version <> 1 then + AddProduct('dotnetfx11.exe', + '/q:a /c:"install /qb /l"', + CustomMessage('dotnetfx11_title'), + CustomMessage('dotnetfx11_size'), + dotnetfx11_url); +end; diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx11lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx11lp.iss new file mode 100644 index 000000000..b14cc0286 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx11lp.iss @@ -0,0 +1,27 @@ +[CustomMessages] +de.dotnetfx11lp_title=.NET Framework 1.1 Sprachpaket: Deutsch + +de.dotnetfx11lp_size=1,4 MB + +;http://www.microsoft.com/globaldev/reference/lcid-all.mspx +de.dotnetfx11lp_lcid=1031 + +de.dotnetfx11lp_url=http://download.microsoft.com/download/6/8/2/6821e687-526a-4ef8-9a67-9a402ec5ac9e/langpack.exe + + +[Code] +procedure dotnetfx11lp(); +var + version: cardinal; +begin + if ActiveLanguage() <> 'en' then begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322\' + CustomMessage('dotnetfx11lp_lcid'), 'Install', version); + + if version <> 1 then + AddProduct(ExpandConstant('dotnetfx11_langpack.exe'), + '/q:a /c:"inst.exe /qb /l"', + CustomMessage('dotnetfx11lp_title'), + CustomMessage('dotnetfx11lp_size'), + CustomMessage('dotnetfx11lp_url')); + end; +end; diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx11sp1.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx11sp1.iss new file mode 100644 index 000000000..bc21d95fe --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx11sp1.iss @@ -0,0 +1,27 @@ +// requires TabletPC, Windows 2000, Windows 2000 Advanced Server, Windows 2000 Professional Edition , Windows 2000 Server, Windows 2000 Service Pack 2, Windows 2000 Service Pack 3, Windows 2000 Service Pack 4, Windows Server 2003 Service Pack 1 for Itanium-based Systems, Windows Server 2003 x64 editions, Windows Server 2003, Datacenter Edition for 64-Bit Itanium-Based Systems, Windows Server 2003, Datacenter x64 Edition, Windows Server 2003, Enterprise Edition for Itanium-based Systems, Windows Server 2003, Enterprise x64 Edition, Windows Server 2003, Standard x64 Edition, Windows Server 2008 Datacenter, Windows Server 2008 Enterprise, Windows Server 2008 for Itanium-based Systems, Windows Server 2008 Standard, Windows Vista Business, Windows Vista Business 64-bit edition, Windows Vista Enterprise, Windows Vista Enterprise 64-bit edition, Windows Vista Home Basic, Windows Vista Home Basic 64-bit edition, Windows Vista Home Premium, Windows Vista Home Premium 64-bit edition, Windows Vista Starter, Windows Vista Ultimate, Windows Vista Ultimate 64-bit edition, Windows XP, Windows XP Home Edition , Windows XP Media Center Edition, Windows XP Professional Edition , Windows XP Professional x64 Edition , Windows XP Service Pack 1, Windows XP Service Pack 2 +// requires internet explorer 5.0.1 or higher +// http://www.microsoft.com/downloads/details.aspx?familyid=A8F5654F-088E-40B2-BBDB-A83353618B38 + +[CustomMessages] +dotnetfx11sp1_title=.NET Framework 1.1 Service Pack 1 + +en.dotnetfx11sp1_size=10.5 MB +de.dotnetfx11sp1_size=10,5 MB + + +[Code] +const + dotnetfx11sp1_url = 'http://download.microsoft.com/download/8/b/4/8b4addd8-e957-4dea-bdb8-c4e00af5b94b/NDP1.1sp1-KB867460-X86.exe'; + +procedure dotnetfx11sp1(); +var + version: cardinal; +begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'SP', version); + if version < 1 then + AddProduct('dotnetfx11sp1.exe', + '/q', + CustomMessage('dotnetfx11sp1_title'), + CustomMessage('dotnetfx11sp1_size'), + dotnetfx11sp1_url); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20.iss new file mode 100644 index 000000000..e72000254 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20.iss @@ -0,0 +1,32 @@ +// requires Windows 2000 Service Pack 3, Windows 98, Windows 98 Second Edition, Windows ME, Windows Server 2003, Windows XP Service Pack 2 +// requires internet explorer 5.0.1 or higher +// requires windows installer 2.0 on windows 98, ME +// requires windows installer 3.1 on windows 2000 or higher +// http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5 + +[CustomMessages] +dotnetfx20_title=.NET Framework 2.0 + +en.dotnetfx20_size=23 MB +de.dotnetfx20_size=23 MB + + +[Code] +const + dotnetfx20_url = 'http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe'; + dotnetfx20_url_x64 = 'http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe'; + dotnetfx20_url_ia64 = 'http://download.microsoft.com/download/f/8/6/f86148a4-e8f7-4d08-a484-b4107f238728/NetFx64.exe'; + +procedure dotnetfx20(); +var + version: cardinal; +begin + RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'Install', version); + if version <> 1 then begin + AddProduct('dotnetfx20.exe', + '/q:a /t:' + ExpandConstant('{tmp}{\}') + 'dotnetfx20 /c:"install /qb /l"', + CustomMessage('dotnetfx20_title'), + CustomMessage('dotnetfx20_size'), + GetURL(dotnetfx20_url, dotnetfx20_url_x64, dotnetfx20_url_ia64)); + end; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20lp.iss new file mode 100644 index 000000000..19ea5a800 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20lp.iss @@ -0,0 +1,31 @@ +//http://www.microsoft.com/downloads/details.aspx?familyid=92E0E1CE-8693-4480-84FA-7D85EEF59016 + +[CustomMessages] +de.dotnetfx20lp_title=.NET Framework 2.0 Sprachpaket: Deutsch + +de.dotnetfx20lp_size=1,8 MB + +;http://www.microsoft.com/globaldev/reference/lcid-all.mspx +de.dotnetfx20lp_lcid=1031 + +de.dotnetfx20lp_url=http://download.microsoft.com/download/2/9/7/29768238-56c3-4ea6-abba-4c5246f2bc81/langpack.exe +de.dotnetfx20lp_url_x64=http://download.microsoft.com/download/2/e/f/2ef250ba-a868-4074-a4c9-249004866f87/langpack.exe +de.dotnetfx20lp_url_ia64=http://download.microsoft.com/download/8/9/8/898c5670-5e74-41c4-82fc-68dd837af627/langpack.exe + + +[Code] +procedure dotnetfx20lp(); +var + version: cardinal; +begin + if ActiveLanguage() <> 'en' then begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20lp_lcid'), 'Install', version); + + if version <> 1 then + AddProduct(ExpandConstant('dotnetfx20_langpack.exe'), + '/q:a /c:"install /qb /l"', + CustomMessage('dotnetfx20lp_title'), + CustomMessage('dotnetfx20lp_size'), + GetURL(CustomMessage('dotnetfx20lp_url'), CustomMessage('dotnetfx20lp_url_x64'), CustomMessage('dotnetfx20lp_url_ia64'))); + end; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1.iss new file mode 100644 index 000000000..fcb9474d7 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1.iss @@ -0,0 +1,29 @@ +// requires Windows 2000 Service Pack 4, Windows Server 2003, Windows XP Service Pack 2 +// requires KB 835732 on Windows 2000 Service Pack 4 +// http://www.microsoft.com/downloads/details.aspx?FamilyID=79bc3b77-e02c-4ad3-aacf-a7633f706ba5 + +[CustomMessages] +dotnetfx20sp1_title=.NET Framework 2.0 Service Pack 1 + +en.dotnetfx20sp1_size=23.6 MB +de.dotnetfx20sp1_size=23,6 MB + + +[Code] +const + dotnetfx20sp1_url = 'http://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe'; + dotnetfx20sp1_url_x64 = 'http://download.microsoft.com/download/9/8/6/98610406-c2b7-45a4-bdc3-9db1b1c5f7e2/NetFx20SP1_x64.exe'; + dotnetfx20sp1_url_ia64 = 'http://download.microsoft.com/download/c/9/7/c97d534b-8a55-495d-ab06-ad56f4b7f155/NetFx20SP1_ia64.exe'; + +procedure dotnetfx20sp1(); +var + version: cardinal; +begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'SP', version); + if version < 1 then + AddProduct('dotnetfx20sp1.exe', + '/q:a /t:' + ExpandConstant('{tmp}{\}') + 'dotnetfx20sp1 /c:"install /qb /l /msipassthru MSI_PROP_BEGIN" REBOOT=Suppress "MSI_PROP_END"', + CustomMessage('dotnetfx20sp1_title'), + CustomMessage('dotnetfx20sp1_size'), + GetURL(dotnetfx20sp1_url, dotnetfx20sp1_url_x64, dotnetfx20sp1_url_ia64)); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1lp.iss new file mode 100644 index 000000000..7d1cba709 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1lp.iss @@ -0,0 +1,31 @@ +//http://www.microsoft.com/downloads/details.aspx?FamilyID=1cc39ffe-a2aa-4548-91b3-855a2de99304 + +[CustomMessages] +de.dotnetfx20sp1lp_title=.NET Framework 2.0 SP1 Sprachpaket: Deutsch + +de.dotnetfx20sp1lp_size=3,4 MB + +;http://www.microsoft.com/globaldev/reference/lcid-all.mspx +de.dotnetfx20sp1lp_lcid=1031 + +de.dotnetfx20sp1lp_url=http://download.microsoft.com/download/8/a/a/8aab7e6a-5e58-4e83-be99-f5fb49fe811e/NetFx20SP1_x86de.exe +de.dotnetfx20sp1lp_url_x64=http://download.microsoft.com/download/1/4/2/1425872f-c564-4ab2-8c9e-344afdaecd44/NetFx20SP1_x64de.exe +de.dotnetfx20sp1lp_url_ia64=http://download.microsoft.com/download/a/0/b/a0bef431-19d8-433c-9f42-6e2824a8cb90/NetFx20SP1_ia64de.exe + + +[Code] +procedure dotnetfx20sp1lp(); +var + version: cardinal; +begin + if ActiveLanguage() <> 'en' then begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20sp1lp_lcid'), 'SP', version); + + if version < 1 then + AddProduct(ExpandConstant('dotnetfx20sp1_langpack.exe'), + '/q:a /c:"install /qb /l"', + CustomMessage('dotnetfx20sp1lp_title'), + CustomMessage('dotnetfx20sp1lp_size'), + GetURL(CustomMessage('dotnetfx20sp1lp_url'), CustomMessage('dotnetfx20sp1lp_url_x64'), CustomMessage('dotnetfx20sp1lp_url_ia64'))); + end; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2.iss new file mode 100644 index 000000000..ba17c1921 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2.iss @@ -0,0 +1,27 @@ +//http://www.microsoft.com/downloads/details.aspx?familyid=5B2C0358-915B-4EB5-9B1D-10E506DA9D0F + +[CustomMessages] +dotnetfx20sp2_title=.NET Framework 2.0 Service Pack 2 + +en.dotnetfx20sp2_size=24 MB - 52 MB +de.dotnetfx20sp2_size=24 MB - 52 MB + + +[Code] +const + dotnetfx20sp2_url = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe'; + dotnetfx20sp2_url_x64 = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe'; + dotnetfx20sp2_url_ia64 = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_ia64.exe'; + +procedure dotnetfx20sp2(); +var + version: cardinal; +begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'SP', version); + if version < 2 then + AddProduct('dotnetfx20sp2.exe', + '/lang:enu /qb /norestart', + CustomMessage('dotnetfx20sp2_title'), + CustomMessage('dotnetfx20sp2_size'), + GetURL(dotnetfx20sp2_url, dotnetfx20sp2_url_x64, dotnetfx20sp2_url_ia64)); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2lp.iss new file mode 100644 index 000000000..f711fbd68 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2lp.iss @@ -0,0 +1,31 @@ +//http://www.microsoft.com/downloads/details.aspx?FamilyID=c69789e0-a4fa-4b2e-a6b5-3b3695825992 + +[CustomMessages] +de.dotnetfx20sp2lp_title=.NET Framework 2.0 SP2 Sprachpaket: Deutsch + +de.dotnetfx20sp2lp_size=3,4 MB + +;http://www.microsoft.com/globaldev/reference/lcid-all.mspx +de.dotnetfx20sp2lp_lcid=1031 + +de.dotnetfx20sp2lp_url=http://download.microsoft.com/download/0/b/1/0b175c8e-34bd-46c0-bfcd-af8d33770c58/netfx20sp2_x86de.exe +de.dotnetfx20sp2lp_url_x64=http://download.microsoft.com/download/4/e/c/4ec67a11-879d-4550-9c25-fd9ab4261b46/netfx20sp2_x64de.exe +de.dotnetfx20sp2lp_url_ia64=http://download.microsoft.com/download/a/3/3/a3349a2d-36e4-4797-8297-4394e6fbd677/NetFx20SP2_ia64de.exe + + +[Code] +procedure dotnetfx20sp2lp(); +var + version: cardinal; +begin + if ActiveLanguage() <> 'en' then begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20sp2lp_lcid'), 'SP', version); + + if version < 2 then + AddProduct(ExpandConstant('dotnetfx20sp2_langpack.exe'), + '/lang:enu /qb /norestart"', + CustomMessage('dotnetfx20sp2lp_title'), + CustomMessage('dotnetfx20sp2lp_size'), + GetURL(CustomMessage('dotnetfx20sp2lp_url'), CustomMessage('dotnetfx20sp2lp_url_x64'), CustomMessage('dotnetfx20sp2lp_url_ia64'))); + end; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx35.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx35.iss new file mode 100644 index 000000000..fa7d9421e --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx35.iss @@ -0,0 +1,28 @@ +// requires Windows Server 2003 Service Pack 1, Windows Server 2008, Windows Vista, Windows XP Service Pack 2 +// requires windows installer 3.1 +// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below +// http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6 + +[CustomMessages] +dotnetfx35_title=.NET Framework 3.5 + +en.dotnetfx35_size=3 MB - 197 MB +de.dotnetfx35_size=3 MB - 197 MB + + +[Code] +const + dotnetfx35_url = 'http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe'; + +procedure dotnetfx35(); +var + version: cardinal; +begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5', 'Install', version); + if version <> 1 then + AddProduct('dotnetfx35.exe', + '/lang:enu /qb /norestart', + CustomMessage('dotnetfx35_title'), + CustomMessage('dotnetfx35_size'), + dotnetfx35_url); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx35lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx35lp.iss new file mode 100644 index 000000000..016679a88 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx35lp.iss @@ -0,0 +1,27 @@ +[CustomMessages] +de.dotnetfx35lp_title=.NET Framework 3.5 Sprachpaket: Deutsch + +de.dotnetfx35lp_size=13 MB - 51 MB + +;http://www.microsoft.com/globaldev/reference/lcid-all.mspx +de.dotnetfx35lp_lcid=1031 + +de.dotnetfx35lp_url=http://download.microsoft.com/download/d/1/e/d1e617c3-c7f4-467e-a7de-af832450efd3/dotnetfx35langpack_x86de.exe + + +[Code] +procedure dotnetfx35lp(); +var + version: cardinal; +begin + if ActiveLanguage() <> 'en' then begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5\' + CustomMessage('dotnetfx35lp_lcid'), 'Install', version); + + if version <> 1 then + AddProduct('dotnetfx35_langpack.exe', + '/lang:enu /qb /norestart', + CustomMessage('dotnetfx35lp_title'), + CustomMessage('dotnetfx35lp_size'), + CustomMessage('dotnetfx35lp_url')); + end; +end; diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1.iss new file mode 100644 index 000000000..1b8632a6e --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1.iss @@ -0,0 +1,28 @@ +// requires Windows Server 2003 Service Pack 1, Windows Server 2008, Windows Vista, Windows XP Service Pack 2 +// requires windows installer 3.1 +// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below +// http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7 + +[CustomMessages] +dotnetfx35sp1_title=.NET Framework 3.5 Service Pack 1 + +en.dotnetfx35sp1_size=3 MB - 232 MB +de.dotnetfx35sp1_size=3 MB - 232 MB + + +[Code] +const + dotnetfx35sp1_url = 'http://download.microsoft.com/download/0/6/1/061f001c-8752-4600-a198-53214c69b51f/dotnetfx35setup.exe'; + +procedure dotnetfx35sp1(); +var + version: cardinal; +begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5', 'SP', version); + if version < 1 then + AddProduct('dotnetfx35sp1.exe', + '/lang:enu /qb /norestart', + CustomMessage('dotnetfx35sp1_title'), + CustomMessage('dotnetfx35sp1_size'), + dotnetfx35sp1_url); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1lp.iss new file mode 100644 index 000000000..e62fb17d9 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1lp.iss @@ -0,0 +1,27 @@ +[CustomMessages] +de.dotnetfx35sp1lp_title=.NET Framework 3.5 SP1 Sprachpaket: Deutsch + +de.dotnetfx35sp1lp_size=22 MB - 98 MB + +;http://www.microsoft.com/globaldev/reference/lcid-all.mspx +de.dotnetfx35sp1lp_lcid=1031 + +de.dotnetfx35sp1lp_url=http://download.microsoft.com/download/d/7/2/d728b7b9-454b-4b57-8270-45dac441b0ec/dotnetfx35langpack_x86de.exe + + +[Code] +procedure dotnetfx35sp1lp(); +var + version: cardinal; +begin + if ActiveLanguage() <> 'en' then begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5\' + CustomMessage('dotnetfx35sp1lp_lcid'), 'SP', version); + + if version < 1 then + AddProduct('dotnetfx35sp1_langpack.exe', + '/lang:enu /qb /norestart', + CustomMessage('dotnetfx35sp1lp_title'), + CustomMessage('dotnetfx35sp1lp_size'), + CustomMessage('dotnetfx35sp1lp_url')); + end; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/fileversion.iss b/Greenshot/releases/innosetup/scripts/products/fileversion.iss new file mode 100644 index 000000000..e747383b9 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/fileversion.iss @@ -0,0 +1,23 @@ +[Code] +function GetFullVersion(VersionMS, VersionLS: cardinal): string; +var + version: string; +begin + version := IntToStr(word(VersionMS shr 16)); + version := version + '.' + IntToStr(word(VersionMS and not $ffff0000)); + + version := version + '.' + IntToStr(word(VersionLS shr 16)); + version := version + '.' + IntToStr(word(VersionLS and not $ffff0000)); + + Result := version; +end; + +function fileversion(file: string): string; +var + versionMS, versionLS: cardinal; +begin + if GetVersionNumbers(file, versionMS, versionLS) then + Result := GetFullVersion(versionMS, versionLS) + else + Result := '0'; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/ie6.iss b/Greenshot/releases/innosetup/scripts/products/ie6.iss new file mode 100644 index 000000000..2d0903b4c --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/ie6.iss @@ -0,0 +1,27 @@ +// requires Windows 2000; Windows 98; Windows ME; Windows NT; Windows XP Service Pack 1 +// WARNING: express setup (downloads and installs the components depending on your OS) +// http://www.microsoft.com/downloads/details.aspx?familyid=1E1550CB-5E5D-48F5-B02B-20B602228DE6 + +[CustomMessages] +ie6_title=Internet Explorer 6 + +en.ie6_size=1 MB - 77.5 MB +de.ie6_size=1 MB - 77,5 MB + + +[Code] +const + ie6_url = 'http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/EN-US/ie6setup.exe'; + +procedure ie6(MinVersion: string); +var + version: string; +begin + RegQueryStringValue(HKLM, 'Software\Microsoft\Internet Explorer', 'Version', version); + if version < MinVersion then + AddProduct('ie6.exe', + '/q:a /C:"setup /QNT"', + CustomMessage('ie6_title'), + CustomMessage('ie6_size'), + ie6_url); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/iis.iss b/Greenshot/releases/innosetup/scripts/products/iis.iss new file mode 100644 index 000000000..0e8beee40 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/iis.iss @@ -0,0 +1,12 @@ +[CustomMessages] +iis_title=Internet Information Services (IIS) + + +[Code] +function iis(): boolean; +begin + if not RegKeyExists(HKLM, 'SYSTEM\CurrentControlSet\Services\W3SVC\Security') then + MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [CustomMessage('iis_title')]), mbError, MB_OK) + else + Result := true; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/jet4sp8.iss b/Greenshot/releases/innosetup/scripts/products/jet4sp8.iss new file mode 100644 index 000000000..64c14f898 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/jet4sp8.iss @@ -0,0 +1,23 @@ +// http://support.microsoft.com/kb/239114 + +[CustomMessages] +jet4sp8_title=Jet 4 + +en.jet4sp8_size=3.7 MB +de.jet4sp8_size=3,7 MB + + +[Code] +const + jet4sp8_url = 'http://download.microsoft.com/download/4/3/9/4393c9ac-e69e-458d-9f6d-2fe191c51469/Jet40SP8_9xNT.exe'; + +procedure jet4sp8(MinVersion: string); +begin + //check for Jet4 Service Pack 8 installation + if fileversion(ExpandConstant('{sys}{\}msjet40.dll')) < MinVersion then + AddProduct('jet4sp8.exe', + '/q:a /c:"install /qb /l"', + CustomMessage('jet4sp8_title'), + CustomMessage('jet4sp8_size'), + jet4sp8_url); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/kb835732.iss b/Greenshot/releases/innosetup/scripts/products/kb835732.iss new file mode 100644 index 000000000..be87b2455 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/kb835732.iss @@ -0,0 +1,27 @@ +// required by .NET Framework 2.0 Service Pack 1 on Windows 2000 Service Pack 2-4 +// http://www.microsoft.com/technet/security/bulletin/ms04-011.mspx +// http://www.microsoft.com/downloads/details.aspx?FamilyId=0692C27E-F63A-414C-B3EB-D2342FBB6C00 + +[CustomMessages] +en.kb835732_title=Windows 2000 Security Update (KB835732) +de.kb835732_title=Windows 2000 Sicherheitsupdate (KB835732) + +en.kb835732_size=6.8 MB +de.kb835732_size=6,8 MB + + +[Code] +const + kb835732_url = 'http://download.microsoft.com/download/f/a/a/faa796aa-399d-437a-9284-c3536e9f2e6e/Windows2000-KB835732-x86-ENU.EXE'; + +procedure kb835732(); +begin + if (minwinspversion(5, 0, 2) and maxwinspversion(5, 0, 4)) then begin + if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB835732\Filelist') then + AddProduct('kb835732.exe', + '/q:a /c:"install /q"', + CustomMessage('kb835732_title'), + CustomMessage('kb835732_size'), + kb835732_url); + end; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/kb886903.iss b/Greenshot/releases/innosetup/scripts/products/kb886903.iss new file mode 100644 index 000000000..f3426918d --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/kb886903.iss @@ -0,0 +1,32 @@ +// WARNING: Windows Update is better because there are different versions for different OS +// (optional) critical security hotfix for .NET Framework 1.1 Service Pack 1 on Windows 2000/XP/2003 +// http://support.microsoft.com/default.aspx?scid=kb;en-us;886903 +// http://www.microsoft.com/downloads/details.aspx?familyid=8EC6FB8A-29EB-49CF-9DBC-1A0DC2273FF9 + +[CustomMessages] +en.kb886903_title=.NET Framework 1.1 SP1 Security Update (KB886903) +de.kb886903_title=.NET Framework 1.1 SP1 Sicherheitsupdate (KB886903) + +en.kb886903_size=1.5 MB +de.kb886903_size=1,5 MB + + +[Code] +const + kb886903_url = 'http://download.microsoft.com/download/e/1/4/e14c0c02-591b-4696-8552-eb710c26a3cd/NDP1.1sp1-KB886903-X86.exe'; + +procedure kb886903(); +var + version: cardinal; +begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'SP', version); + if version = 1 then begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\Updates\.NETFramework\1.1\M886903', 'Installed', version); + if version <> 1 then + AddProduct('kb886903.exe', + '/q', + CustomMessage('kb886903_title'), + CustomMessage('kb886903_size'), + kb886903_url); + end; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/kb928366.iss b/Greenshot/releases/innosetup/scripts/products/kb928366.iss new file mode 100644 index 000000000..a354f47cd --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/kb928366.iss @@ -0,0 +1,32 @@ +// WARNING: Windows Update is better because there are different versions for different OS +// (optional) critical security hotfix for .NET Framework 1.1 Service Pack 1 on Windows 2000/XP +// http://support.microsoft.com/?id=928366 +// http://www.microsoft.com/downloads/details.aspx?familyid=281FB2CD-C715-4F05-A01F-0455D2D9EBFB + +[CustomMessages] +en.kb928366_title=.NET Framework 1.1 SP1 Security Update (KB928366) +de.kb928366_title=.NET Framework 1.1 SP1 Sicherheitsupdate (KB928366) + +en.kb928366_size=8.8 MB +de.kb928366_size=8,8 MB + + +[Code] +const + kb928366_url = 'http://download.microsoft.com/download/6/d/0/6d0e5797-91eb-401a-a61f-58b369302018/NDP1.1sp1-KB928366-X86.exe'; + +procedure kb928366(); +var + version: cardinal; +begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'SP', version); + if version = 1 then begin + RegQueryDWordValue(HKLM, 'Software\Microsoft\Updates\.NETFramework\1.1\M928366', 'Installed', version); + if version <> 1 then + AddProduct('kb928366.exe', + '/q', + CustomMessage('kb928366_title'), + CustomMessage('kb928366_size'), + kb928366_url); + end; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/mdac28.iss b/Greenshot/releases/innosetup/scripts/products/mdac28.iss new file mode 100644 index 000000000..9bec59b4d --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/mdac28.iss @@ -0,0 +1,24 @@ +[CustomMessages] +mdac28_title=Microsoft Data Access Components 2.8 + +en.mdac28_size=5.4 MB +de.mdac28_size=5,4 MB + + +[Code] +const + mdac28_url = 'http://download.microsoft.com/download/c/d/f/cdfd58f1-3973-4c51-8851-49ae3777586f/MDAC_TYP.EXE'; + +procedure mdac28(MinVersion: string); +var + version: string; +begin + //check for MDAC installation + RegQueryStringValue(HKLM, 'Software\Microsoft\DataAccess', 'FullInstallVer', version); + if version < MinVersion then + AddProduct('mdac28.exe', + '/q:a /c:"install /qb /l"', + CustomMessage('mdac28_title'), + CustomMessage('mdac28_size'), + mdac28_url); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/msi20.iss b/Greenshot/releases/innosetup/scripts/products/msi20.iss new file mode 100644 index 000000000..ee5be685b --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/msi20.iss @@ -0,0 +1,21 @@ +[CustomMessages] +msi20_title=Windows Installer 2.0 + +en.msi20_size=1.7 MB +de.msi20_size=1,7 MB + + +[Code] +const + msi20_url = 'http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe'; + +procedure msi20(MinVersion: string); +begin + // Check for required Windows Installer 2.0 on Windows 98 and ME + if maxwinversion(4, 9) and (fileversion(ExpandConstant('{sys}{\}msi.dll')) < MinVersion) then + AddProduct('msi20.exe', + '/q:a /c:"msiinst /delayrebootq"', + CustomMessage('msi20_title'), + CustomMessage('msi20_size'), + msi20_url); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/msi31.iss b/Greenshot/releases/innosetup/scripts/products/msi31.iss new file mode 100644 index 000000000..7193d3f48 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/msi31.iss @@ -0,0 +1,21 @@ +[CustomMessages] +msi31_title=Windows Installer 3.1 + +en.msi31_size=2.5 MB +de.msi31_size=2,5 MB + + +[Code] +const + msi31_url = 'http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe'; + +procedure msi31(MinVersion: string); +begin + // Check for required Windows Installer 3.0 on Windows 2000 or higher + if minwinversion(5, 0) and (fileversion(ExpandConstant('{sys}{\}msi.dll')) < MinVersion) then + AddProduct('msi31.exe', + '/qb /norestart', + CustomMessage('msi31_title'), + CustomMessage('msi31_size'), + msi31_url); +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/scripts/products/sql2005express.iss b/Greenshot/releases/innosetup/scripts/products/sql2005express.iss new file mode 100644 index 000000000..b0af614bb --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/sql2005express.iss @@ -0,0 +1,32 @@ +// requires Windows 2000 Service Pack 4, Windows Server 2003 Service Pack 1, Windows XP Service Pack 2 +// SQL Express 2005 Service Pack 1+ should be installed for SQL Express 2005 to work on Vista +// requires windows installer 3.1 +// http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41 + +[CustomMessages] +sql2005express_title=SQL Server 2005 Express + +en.sql2005express_size=57.7 MB +de.sql2005express_size=57,7 MB + + +[Code] +const + sql2005express_url = 'http://download.microsoft.com/download/f/1/0/f10c4f60-630e-4153-bd53-c3010e4c513b/SQLEXPR.EXE'; + +procedure sql2005express(); +var + version: cardinal; +begin + //CHECK NOT FINISHED YET + //RTM: 9.00.1399.06 + //Service Pack 1: 9.1.2047.00 + //Service Pack 2: 9.2.3042.00 + RegQueryDWordValue(HKLM, 'Software\Microsoft\Microsoft SQL Server\90\DTS\Setup', 'Install', version); + if version <> 1 then + AddProduct('sql2005express.exe', + '/qb', + CustomMessage('sql2005express_title'), + CustomMessage('sql2005express_size'), + sql2005express_url); +end; diff --git a/Greenshot/releases/innosetup/scripts/products/winversion.iss b/Greenshot/releases/innosetup/scripts/products/winversion.iss new file mode 100644 index 000000000..7d3d122b6 --- /dev/null +++ b/Greenshot/releases/innosetup/scripts/products/winversion.iss @@ -0,0 +1,47 @@ +[Code] +var + WindowsVersion: TWindowsVersion; + +procedure initwinversion(); +begin + GetWindowsVersionEx(WindowsVersion); +end; + +function exactwinversion(MajorVersion, MinorVersion: integer): boolean; +begin + Result := (WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor = MinorVersion); +end; + +function minwinversion(MajorVersion, MinorVersion: integer): boolean; +begin + Result := (WindowsVersion.Major > MajorVersion) or ((WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor >= MinorVersion)); +end; + +function maxwinversion(MajorVersion, MinorVersion: integer): boolean; +begin + Result := (WindowsVersion.Major < MajorVersion) or ((WindowsVersion.Major = MajorVersion) and (WindowsVersion.Minor <= MinorVersion)); +end; + +function exactwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean; +begin + if exactwinversion(MajorVersion, MinorVersion) then + Result := WindowsVersion.ServicePackMajor = SpVersion + else + Result := true; +end; + +function minwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean; +begin + if exactwinversion(MajorVersion, MinorVersion) then + Result := WindowsVersion.ServicePackMajor >= SpVersion + else + Result := true; +end; + +function maxwinspversion(MajorVersion, MinorVersion, SpVersion: integer): boolean; +begin + if exactwinversion(MajorVersion, MinorVersion) then + Result := WindowsVersion.ServicePackMajor <= SpVersion + else + Result := true; +end; \ No newline at end of file diff --git a/Greenshot/releases/innosetup/setup.iss b/Greenshot/releases/innosetup/setup.iss index eea689fa3..f5a99e552 100644 --- a/Greenshot/releases/innosetup/setup.iss +++ b/Greenshot/releases/innosetup/setup.iss @@ -1,6 +1,22 @@ #define ExeName "Greenshot" #define Version "0.9.0.$WCREV$" -#define Mutex "F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08" + +; Mutex is no longer needed! +;#define Mutex "F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08" + +; Include the scripts to install .NET Framework 2.0 +#include "scripts\products.iss" +#include "scripts\products\winversion.iss" +#include "scripts\products\fileversion.iss" +#include "scripts\products\msi20.iss" +#include "scripts\products\msi31.iss" +#include "scripts\products\dotnetfx20.iss" +#include "scripts\products\dotnetfx20lp.iss" +#include "scripts\products\dotnetfx20sp1.iss" +#include "scripts\products\dotnetfx20sp1lp.iss" +#include "scripts\products\dotnetfx20sp2.iss" +#include "scripts\products\dotnetfx20sp2lp.iss" + [Files] Source: ..\..\bin\Release\*; DestDir: {app}; Flags: overwritereadonly ignoreversion replacesameversion Source: ..\..\bin\Release\Languages\*; DestDir: {app}\Languages; Flags: overwritereadonly ignoreversion replacesameversion @@ -16,6 +32,16 @@ Source: ..\..\bin\Release\Languages\Plugins\Greenshot-OCR-Plugin\*; DestDir: {ap ;Source: ..\..\bin\Release\Languages\Plugins\GreenshotJiraPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly ignoreversion replacesameversion; ;Title-Fix Plugin Source: ..\..\bin\Release\Plugins\Greenshot-TitleFix-Plugin\*; DestDir: {app}\Plugins\Greenshot-TitleFix-Plugin; Components: plugins\titlefix; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion; + +;------ +; Add the "Files In Use Extension" +Source: IssProc\IssProc.dll; DestDir: {tmp}; Flags: dontcopy +; Add Files In Use Extension extra language file (you don t need to add this file if you are using english only) +Source: IssProc\IssProcLanguage.ini; DestDir: {tmp}; Flags: dontcopy +;------ Copy IssProc.dll in your app folder if you want to use it on unistall +Source: IssProc\IssProc.dll; DestDir: {app} +Source: IssProc\IssProcLanguage.ini; DestDir: {app} +;------ [Setup] OutputDir=..\ OutputBaseFilename={#ExeName}-INSTALLER-{#Version} @@ -65,9 +91,6 @@ Name: nl; MessagesFile: compiler:Languages\Dutch.isl [Tasks] Name: startup; Description: {cm:startup} [CustomMessages] -en.dotnetmissing=This setup requires the .NET Framework v2.0.%nDo you want to download the framework now? -de.dotnetmissing=Dieses Programm benötigt Microsoft .NET Framework v2.0.%nWollen Sie das Framework jetzt downloaden? -nl.dotnetmissing=Dit programma heeft Microsoft .NET Framework v2.0. nodig%nWilt u het Framework nu downloaden? en.startup=Start {#ExeName} with Windows start de.startup={#ExeName} starten wenn Windows hochfahrt nl.startup=Start {#ExeName} wanneer Windows opstart @@ -87,22 +110,53 @@ Name: "plugins\ocr"; Description: {cm:ocr}; Types: Full Name: "plugins\titlefix"; Description: {cm:titlefix}; Types: Full ;Name: "plugins\flickr"; Description: "Flickr Plugin"; Types: Full [Code] -function KillGreenshot() : Boolean; +// IssFindModule see http://raz-soft.com/display-english-posts-only/files-in-use-extension-for-inno-setup/ +// IssFindModule called on install +function IssFindModule(hWnd: Integer; Modulename: PAnsiChar; Language: PAnsiChar; Silent: Boolean; CanIgnore: Boolean ): Integer; +external 'IssFindModule@files:IssProc.dll stdcall setuponly'; + +// IssFindModule called on uninstall +function IssFindModuleU(hWnd: Integer; Modulename: PAnsiChar; Language: PAnsiChar; Silent: Boolean; CanIgnore: Boolean ): Integer; +external 'IssFindModule@{app}\IssProc.dll stdcall uninstallonly'; + +// Don't install as long as Greenshot is running +function NextButtonClick(CurPage: Integer): Boolean; var - bMutex : Boolean; - resultCode: Integer; + hWnd: Integer; + sModuleName: String; + sApp: String; + nCode: Integer; begin - bMutex:= True - while bMutex do + Result := true; + if CurPage = wpReady then begin - bMutex:= CheckForMutexes ('Local\{#Mutex}'); - if bMutex = True then - begin - Exec('taskkill.exe', '/F /IM Greenshot.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); - Sleep(1200); + Result := false; + ExtractTemporaryFile('IssProcLanguage.ini'); + hWnd := StrToInt(ExpandConstant('{wizardhwnd}')); + sApp := ExpandConstant('{app}'); + // Check on all Greenshot binary files (plugins, exe & DLL's + sModuleName := sApp + '\{#ExeName}.exe;' + sApp + '\{#ExeName}*.dll;' + sApp + '\*\*.dll;' + sApp + '\*\*.gsp'; + + nCode:=IssFindModule(hWnd, sModuleName, ExpandConstant('{language}'), WizardSilent(), false); + if nCode=1 then begin + if WizardSilent() then begin + while IssFindModule(hWnd, sModuleName, ExpandConstant('{language}'), WizardSilent(), false) = 1 do + begin + Exec('taskkill.exe', '/IM greenshot.exe', '', SW_HIDE, ewWaitUntilTerminated, nCode); + Sleep(1200); + end; + + Result := IssFindModule(hWnd, sModuleName, ExpandConstant('{language}'), WizardSilent(), false) = 0; + end else begin + PostMessage (WizardForm.Handle, $0010, 0, 0); + end; + end else if (nCode=0) or (nCode=2) then begin + Result := true; end; end; - Result := True; + + // Check missing Dependencies + ProductNextButtonClick(CurPage); end; function InitializeSetup(): Boolean; @@ -111,26 +165,46 @@ var NetFrameWorkInstalled : Boolean; MsgBoxResult : Boolean; begin - - NetFrameWorkInstalled := RegKeyExists(HKLM, 'SOFTWARE\Microsoft\.NETFramework\policy\v2.0'); - if NetFrameWorkInstalled = true then begin - KillGreenshot(); - Result := true; - end - else begin - MsgBoxResult := MsgBox(ExpandConstant('{cm:dotnetmissing}'), mbConfirmation, MB_YESNO) = idYes; - Result := false; - if MsgBoxResult = true then - begin - ShellExec('open', 'http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode); + // Enhance installer otherwise .NET installations won't work + msi20('2.0'); + msi31('3.0'); + + //install .netfx 2.0 sp2 if possible; if not sp1 if possible; if not .netfx 2.0 + if minwinversion(5, 1) then begin + dotnetfx20sp2(); + dotnetfx20sp2lp(); + end else begin + if minwinversion(5, 0) and minwinspversion(5, 0, 4) then begin + // kb835732(); + dotnetfx20sp1(); + dotnetfx20sp1lp(); + end else begin + dotnetfx20(); + dotnetfx20lp(); end; end; + Result := true; end; -function InitializeUninstall():Boolean; +function InitializeUninstall(): Boolean; +var + sModuleName: String; + nCode: Integer; + sApp: String; begin - KillGreenshot(); - Result := True; + Result := false; + sApp := ExpandConstant('{app}'); + + // Check on all Greenshot binary files (plugins, exe & DLL's + sModuleName := sApp + '\{#ExeName}.exe;' + sApp + '\{#ExeName}*.dll;' + sApp + '\*\*.dll;' + sApp + '\*\*.gsp'; + + nCode:=IssFindModuleU(0, sModuleName, 'enu', false, false); + if (nCode=0) then begin + Result := true; + end; + + // Unload the extension, otherwise it will not be deleted by the uninstaller + UnloadDLL(ExpandConstant('{app}\IssProc.dll')); end; [Run] Filename: {app}\{#ExeName}.exe; Description: {cm:startgreenshot}; Parameters: --configure Ui_Language={language}; WorkingDir: {app}; Flags: nowait postinstall runasoriginaluser