Setup will install .NET Framework 4.0 and C++ Redistributable 2010 automatically

This commit is contained in:
Jaex 2014-05-27 10:04:39 +03:00
parent 959a43ec66
commit 855ce3262f
52 changed files with 2013 additions and 14 deletions

4
.gitignore vendored
View file

@ -108,5 +108,5 @@ Backup*/
UpgradeLog*.XML
# Additional
Output/
UploadersLib/APIKeys/APIKeysLocal.cs
InnoSetup/Output/
UploadersLib/APIKeys/APIKeysLocal.cs

View file

@ -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:

View file

@ -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:

View file

@ -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

View file

@ -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 douverture %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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

Binary file not shown.

View file

@ -0,0 +1,14 @@
[Files]
Source: "scripts\isxdl\isxdl.dll"; Flags: dontcopy
[Code]
//replace PAnsiChar with PChar on non-unicode Inno Setup
procedure isxdl_AddFile(URL, Filename: PAnsiChar);
external 'isxdl_AddFile@files:isxdl.dll stdcall';
function isxdl_DownloadFiles(hWnd: Integer): Integer;
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
//replace PAnsiChar with PChar on non-unicode Inno Setup
function isxdl_SetOption(Option, Value: PAnsiChar): Integer;
external 'isxdl_SetOption@files:isxdl.dll stdcall';

View file

@ -0,0 +1,47 @@
[strings]
; General
100=Nedlasting
101=Vil du avbryte nedlastinga?
102=%1 (%2 av %3)
103=%1 KB
104=%1 KB av %2 KB (%3%)
; Status information
110=Henter filinformasjon...
111=Omdirigerer til %1
112=Sender forespørsel...
113=Resolving %1
114=Oppkoblet mot %1
115=Mottar...
116=Kobler til %1
; Error messages
120=Feil ved oppkobling til Internett.\n\n%1
121=Feil ved åpning av %1.\n\nTjeneren returnerte statuskode %2.
122=Feil ved lesing av URL.\n\n%1
123=Feil ved skriving til '%1'.\n\n%2
124=Feil ved åpning av '%1'.\n\n%2
125='%1' er ikke en gyldig url.
126=Feil ved åpning av %1.\n\n%2
127=Feil ved sending av forespørsel.\n\n%1
128=Ikke støttet protokoll. Bare HTTP og FTP protokoller er støttet.
129=Klarte ikke å koble til %1.\n\n%2
130=Klarte ikke å lese statuskode.\n\n%1
131=Feil ved forespørsel av fil.\n\n%1
; Other
144=Om...
146=Nedlasting
147=Setup laster nå ned flere filer til din datamaskin.
; labels
160=Fil:
161=Hastighet:
162=Status:
163=Brukt tid:
164=Gjenstående tid:
165=Gjeldende fil:
166=Total fremgang:
167=Avbryt
168=OK
169=Brukernavn og passord
170=Brukernavn:
171=Passord:

View file

@ -0,0 +1,45 @@
[strings]
; General
100=Pobieranie pliku
101=Czy chcesz przerwać pobieranie?
102=%1 (%2 z %3)
103=%1 KB
104=%1 KB z %2 KB (%3%)
; Status information
110=Pobieranie informacji o pliku...
111=Przekierowywanie do %1
112=Wysyłanie żądania...
113=Rozwiązywanie %1
114=Połączony z %1
115=Pobieranie...
116=Podłączanie do %1
; Error messages
120=Nie można podłączyć się do Internetu.\n\n%1
121=Błąd otwierania %1.\n\nSerwer zwrócił kod błędu %2.
122=Błąd czytania URL.\n\n%1
123=Błąd zapisu pliku %1.\n\n%2
124=Błąd otwarcia pliku %1.\n\n%2
125='%1' nie jest prawidłowym URL.
126=Błąd otwarcia %1.\n\n%2
127=Błąd wysłania żądania.\n\n%1
128=Nieznany protokół. Tylko protokoły HTTP i FTP są obsługiwane.
129=Nie udało się podłączenie do %1.\n\n%2
130=Nie udało się zapytać o kod stanu.\n\n%1
131=Błąd żądania pliku.\n\n%1
; Other
144=O pobieraniu...
146=Pobieranie
147=W tej chwili Instalator pobiera dodatkowe pliki do Twojego komputera.
; labels
160=Plik:
161=Prędkość:
162=Stan:
163=Upłynęło:
164=Pozostały czas:
165=Aktualny plik:
166=Całkowity postęp:
167=Anuluj

View file

@ -0,0 +1,45 @@
[strings]
; General
100=Donwload de ficheiro
101=Deseja cancelar o donwload?
102=%1 (%2 de %3)
103=%1 KB
104=%1 KB de %2 KB (%3%)
; Status information
110=A receber informação do ficheiro...
111=A redirecionar para %1
112=A enviar pedido...
113=A resolver %1
114=Ligado a %1
115=A receber...
116=A ligar a %1
; Error messages
120=Erro na ligação à internet.\n\n%1
121=Erro na abertura de %1.\n\nO servidor retornou o código de erro %2.
122=Erro a ler o URL.\n\n%1
123=Erro na escrita do ficheiro %1.\n\n%2
124=Erro na abertura do ficheiro %1.\n\n%2
125='%1' é um URL inválido.
126=Erro na abertura de %1.\n\n%2
127=Erro no envio do pedido.\n\n%1
128=Protocolo não suportado.
129=Falha na ligação a %1.\n\n%2
130=Falha na tentativa de retirar o código de status.\n\n%1
131=Erro no pedido do ficheiro.\n\n%1
; Other
144=Acerca...
146=Download
147=A instalação está a efectuar o download de ficheiros adicionais necessários.
; labels
160=Ficheiro:
161=Velocidade:
162=Estado:
163=Tempo usado:
164=Tempo em falta:
165=Ficheiro:
166=Progresso:
167=Cancelar

View file

@ -0,0 +1,46 @@
; By António Pinto (AP SoftWare)
[strings]
; Geral
100=Download
101=Deseja cancelar o download?
102=%1 (%2 de %3)
103=%1 Kb
104=%1 Kb de %2 Kb (%3%)
; Status information
110=A receber informação do ficheiro...
111=Redireccionando a %1
112=A enviar petição...
113=Resolvendo %1
114=Ligado a %1
115=A receber...
116=A efectuar ligação a %1
; Error messages
120=Erro a ligar à Internet.\n\n%1
121=Erro ao abrir %1.\n\nO servidor devolveu o código %2.
122=Erro ao ler URL.\n\n%1
123=Erro ao escrever o ficheiro %1.\n\n%2
124=Erro ao abrir o ficheiro %1.\n\n%2
125='%1' é uma URL inválida.
126=Erro ao abrir %1.\n\n%2
127=Erro ao enviar a petição.\n\n%1
128=Erro de protocolo. Só os protocolos HTTP ou FTP são aceites.
129=Erro ao ligar a %1.\n\n%2
130=Erro ao processar o código.\n\n%1
131=Erro ao procurar o ficheiro.\n\n%1
; Other
144=Acerca...
146=Descarregar
147=O assistente está a descarregar ficheiros para o seu computador.
; labels
160=Ficheiro:
161=Velocidade:
162=Estado:
163=Tempo transcorrido:
164=Tempo estimado:
165=Ficheiro actual:
166=Progressão geral:
167=Cancelar

View file

@ -0,0 +1,50 @@
[strings]
; General
100=Загрузка файла
101=Хотите прекратить загрузку?
102=%1 (%2 из %3)
103=%1 KB
104=%1 KB из %2 KB (%3%)
; Status information
110=Получение информации о файле...
111=Переход на %1
112=Отправка запроса...
113=Получение доступа %1
114=Соединение с %1
115=Получение...
116=Соединение с %1
; Error messages
120=Ошибка подключения к Интернет.\n\n%1
121=Ошибка открытия %1.\n\nСервер вернул код ошибки %2.
122=Ошибка чтения адреса.\n\n%1
123=Ошибка записи файла %1.\n\n%2
124=Ошибка открытия файла %1.\n\n%2
125='%1' неправильный адрес Интернет.
126=Ошибка открытия %1.\n\n%2
127=Ошибка при посылке запроса.\n\n%1
128=Протокол не поддерживается. Только протоколы HTTP и FTP поддерживаются
программой.
129=Невозможно подключиться к %1.\n\n%2
130=Неозможно получить код статуса.\n\n%1
131=Ошибка при запросе файла.\n\n%1
; Other
144=О...
146=Загрузка
147=Сейчас произойдет загрузка дополнительный файлов на Ваш компьютер.
; labels
160=Файл:
161=Скорость:
162=Статус:
163=Прошло времени:
164=Осталось времени:
165=Текущий файл:
166=Всего закачено:
167=Отмена
168=OK
169=Имя пользователя и пароль
170=Имя пользователя:
171=Пароль:

View file

@ -0,0 +1,46 @@
; By Lobo Lunar
[strings]
; General
100=Descarga
101=¿Deseas cancelar la descarga?
102=%1 (%2 de %3)
103=%1 KB
104=%1 KB de %2 KB (%3%)
; Status information
110=Recibiendo información del archivo...
111=Redireccionando a %1
112=Enviando petición...
113=Resolviendo %1
114=Conectando a %1
115=Descargando...
116=Conectando a %1
; Error messages
120=Error al conectar a Internet.\n\n%1
121=Error al abrir %1.\n\nEl servidor regresó %2.
122=Error al leer URL.\n\n%1
123=Error al escribir el archivo %1.\n\n%2
124=Error al abrir archivo %1.\n\n%2
125='%1' es URL inválido.
126=Error al abrir %1.\n\n%2
127=Error al mandar petición.\n\n%1
128=Error de protocolo. Sólo HTTP o FTP son aceptados.
129=Error al conectar a %1.\n\n%2
130=Error al procesar el código.\n\n%1
131=Error al buscar archivo.\n\n%1
; Other
144=Acerca...
146=Descargar
147=El asistente está descargando archivos.
; labels
160=Archivo:
161=Velocidad:
162=Estado:
163=Tiempo transcurrido:
164=Tiempo estimado:
165=Archivo actual:
166=Progreso general:
167=Cancelar

View file

@ -0,0 +1,48 @@
[strings]
; General
100=Fil Nedladdning
101=Vill du avbruta nedladdningen?
102=%1 (%2 av %3)
103=%1 KB
104=%1 KB av %2 KB (%3%)
; Status information
110=Hämtar fil information...
111=Omdirigerar till %1
112=Sänder förfrågan...
113=Delar upp %1
114=Ansluten %1
115=Tar emot...
116=Ansluter till %1
; Error messages
120=Fel vid anslutning till Internet.\n\n%1
121=Fel vid öppning av %1.\n\nServern returnerade felkod %2.
122=Fel vid läsninga av URL.\n\n%1
123=Fel vid skrivning av fil %1.\n\n%2
124=Fel vid öppning av fil %1.\n\n%2
125='%1' är en felaktig URL.
126=Kan inte öppna %1.\n\n%2
127=Fel vid sändning av förfrågan.\n\n%1
128=Stöd saknas för protokollet. Endast HTTP och FTP protokollen understöds.
129=Misslyckades att ansluta till %1.\n\n%2
130=Misslyckades att kontrollera status kod.\n\n%1
131=Fel vid förfrågan efter fil.\n\n%1
; Other
144=Om...
146=Ladd ner
147=Setup laddar nu ner tilläggsfiler till din dator
; labels
160=Fil:
161=Hastighet:
162=Status:
163=Förfluten Time:
164=Återstående Time:
165=Nuvarande Fil:
166=Totalt Förlopp:
167=Avbryt
168=OK
169=Användarnamn och Lösenord
170=Användarnamn:
171=Lösenord:

View file

@ -0,0 +1,267 @@
#include "isxdl\isxdl.iss"
[CustomMessages]
DependenciesDir=MyProgramDependencies
en.depdownload_msg=The following applications are required before setup can continue:%n%n%1%nDownload and install now?
de.depdownload_msg=Die folgenden Programme werden benötigt bevor das Setup fortfahren kann:%n%n%1%nJetzt downloaden und installieren?
en.depdownload_memo_title=Download dependencies
de.depdownload_memo_title=Abhängigkeiten downloaden
en.depinstall_memo_title=Install dependencies
de.depinstall_memo_title=Abhängigkeiten installieren
en.depinstall_title=Installing dependencies
de.depinstall_title=Installiere Abhängigkeiten
en.depinstall_description=Please wait while Setup installs dependencies on your computer.
de.depinstall_description=Warten Sie bitte während Abhängigkeiten auf Ihrem Computer installiert wird.
en.depinstall_status=Installing %1...
de.depinstall_status=Installiere %1...
en.depinstall_missing=%1 must be installed before setup can continue. Please install %1 and run Setup again.
de.depinstall_missing=%1 muss installiert werden bevor das Setup fortfahren kann. Bitte installieren Sie %1 und starten Sie das Setup erneut.
en.depinstall_error=An error occured while installing the dependencies. Please restart the computer and run the setup again or install the following dependencies manually:%n
de.depinstall_error=Ein Fehler ist während der Installation der Abghängigkeiten aufgetreten. Bitte starten Sie den Computer neu und führen Sie das Setup erneut aus oder installieren Sie die folgenden Abhängigkeiten per Hand:%n
en.isxdl_langfile=
de.isxdl_langfile=german2.ini
[Files]
Source: "scripts\isxdl\german2.ini"; Flags: dontcopy
[Code]
type
TProduct = record
File: String;
Title: String;
Parameters: String;
InstallClean : boolean;
MustRebootAfter : boolean;
end;
InstallResult = (InstallSuccessful, InstallRebootRequired, InstallError);
var
installMemo, downloadMemo, downloadMessage: string;
products: array of TProduct;
delayedReboot: boolean;
DependencyPage: TOutputProgressWizardPage;
procedure AddProduct(FileName, Parameters, Title, Size, URL: string; InstallClean : boolean; MustRebootAfter : boolean);
var
path: string;
i: Integer;
begin
installMemo := installMemo + '%1' + Title + #13;
path := ExpandConstant('{src}{\}') + CustomMessage('DependenciesDir') + '\' + FileName;
if not FileExists(path) then begin
path := ExpandConstant('{tmp}{\}') + FileName;
isxdl_AddFile(URL, path);
downloadMemo := downloadMemo + '%1' + Title + #13;
downloadMessage := downloadMessage + ' ' + Title + ' (' + Size + ')' + #13;
end;
i := GetArrayLength(products);
SetArrayLength(products, i + 1);
products[i].File := path;
products[i].Title := Title;
products[i].Parameters := Parameters;
products[i].InstallClean := InstallClean;
products[i].MustRebootAfter := MustRebootAfter;
end;
function SmartExec(prod : TProduct; var ResultCode : Integer) : boolean;
begin
if (LowerCase(Copy(prod.File,Length(prod.File)-2,3)) = 'exe') then begin
Result := Exec(prod.File, prod.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
end else begin
Result := ShellExec('', prod.File, prod.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
end;
end;
function PendingReboot : boolean;
var names: String;
begin
if (RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'PendingFileRenameOperations', names)) then begin
Result := true;
end else if ((RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'SetupExecute', names)) and (names <> '')) then begin
Result := true;
end else begin
Result := false;
end;
end;
function InstallProducts: InstallResult;
var
ResultCode, i, productCount, finishCount: Integer;
begin
Result := InstallSuccessful;
productCount := GetArrayLength(products);
if productCount > 0 then begin
DependencyPage := CreateOutputProgressPage(CustomMessage('depinstall_title'), CustomMessage('depinstall_description'));
DependencyPage.Show;
for i := 0 to productCount - 1 do begin
if (products[i].InstallClean and (delayedReboot or PendingReboot())) then begin
Result := InstallRebootRequired;
break;
end;
DependencyPage.SetText(FmtMessage(CustomMessage('depinstall_status'), [products[i].Title]), '');
DependencyPage.SetProgress(i, productCount);
if SmartExec(products[i], ResultCode) then begin
//setup executed; ResultCode contains the exit code
//MsgBox(products[i].Title + ' install executed. Result Code: ' + IntToStr(ResultCode), mbInformation, MB_OK);
if (products[i].MustRebootAfter) then begin
//delay reboot after install if we installed the last dependency anyways
if (i = productCount - 1) then begin
delayedReboot := true;
end else begin
Result := InstallRebootRequired;
end;
break;
end else if (ResultCode = 0) then begin
finishCount := finishCount + 1;
end else if (ResultCode = 3010) then begin
//ResultCode 3010: A restart is required to complete the installation. This message indicates success.
delayedReboot := true;
finishCount := finishCount + 1;
end else begin
Result := InstallError;
break;
end;
end else begin
//MsgBox(products[i].Title + ' install failed. Result Code: ' + IntToStr(ResultCode), mbInformation, MB_OK);
Result := InstallError;
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
delayedReboot := false;
case InstallProducts() of
InstallError: begin
s := CustomMessage('depinstall_error');
for i := 0 to GetArrayLength(products) - 1 do begin
s := s + #13 + ' ' + products[i].Title;
end;
Result := s;
end;
InstallRebootRequired: begin
Result := products[0].Title;
NeedsRestart := true;
//write into the registry that the installer needs to be executed again after restart
RegWriteStringValue(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', 'InstallBootstrap', ExpandConstant('{srcexe}'));
end;
end;
end;
function NeedRestart : boolean;
begin
if (delayedReboot) then
Result := true;
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 NextButtonClick(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 IsX86: boolean;
begin
Result := (ProcessorArchitecture = paX86) or (ProcessorArchitecture = paUnknown);
end;
function IsX64: boolean;
begin
Result := Is64BitInstallMode and (ProcessorArchitecture = paX64);
end;
function IsIA64: boolean;
begin
Result := Is64BitInstallMode and (ProcessorArchitecture = paIA64);
end;
function GetString(x86, x64, ia64: String): String;
begin
if IsX64() and (x64 <> '') then begin
Result := x64;
end else if IsIA64() and (ia64 <> '') then begin
Result := ia64;
end else begin
Result := x86;
end;
end;
function GetArchitectureString(): String;
begin
if IsX64() then begin
Result := '_x64';
end else if IsIA64() then begin
Result := '_ia64';
end else begin
Result := '';
end;
end;

View file

@ -0,0 +1,25 @@
// 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();
begin
if (IsX86() and not netfxinstalled(NetFx11, '')) then
AddProduct('dotnetfx11.exe',
'/q:a /c:"install /qb /l"',
CustomMessage('dotnetfx11_title'),
CustomMessage('dotnetfx11_size'),
dotnetfx11_url,
false, false);
end;

View file

@ -0,0 +1,24 @@
[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();
begin
if (ActiveLanguage() <> 'en') then begin
if (IsX86() and not netfxinstalled(NetFx11, CustomMessage('dotnetfx11lp_lcid'))) then
AddProduct('dotnetfx11' + ActiveLanguage() + '.exe',
'/q:a /c:"inst.exe /qb /l"',
CustomMessage('dotnetfx11lp_title'),
CustomMessage('dotnetfx11lp_size'),
CustomMessage('dotnetfx11lp_url'),
false, false);
end;
end;

View file

@ -0,0 +1,25 @@
// 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();
begin
if (IsX86() and (netfxspversion(NetFx11, '') < 1)) then
AddProduct('dotnetfx11sp1.exe',
'/q',
CustomMessage('dotnetfx11sp1_title'),
CustomMessage('dotnetfx11sp1_size'),
dotnetfx11sp1_url,
false, false);
end;

View file

@ -0,0 +1,28 @@
// 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
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();
begin
if (not netfxinstalled(NetFx20, '')) then
AddProduct('dotnetfx20' + GetArchitectureString() + '.exe',
'/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20_title'),
CustomMessage('dotnetfx20_size'),
GetString(dotnetfx20_url, dotnetfx20_url_x64, dotnetfx20_url_ia64),
false, false);
end;

View file

@ -0,0 +1,28 @@
//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();
begin
if (ActiveLanguage() <> 'en') then begin
if (not netfxinstalled(NetFx20, CustomMessage('dotnetfx20lp_lcid'))) then
AddProduct('dotnetfx20' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
'/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20lp_title'),
CustomMessage('dotnetfx20lp_size'),
CustomMessage('dotnetfx20lp_url' + GetArchitectureString()),
false, false);
end;
end;

View file

@ -0,0 +1,27 @@
// 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();
begin
if (netfxspversion(NetFx20, '') < 1) then
AddProduct('dotnetfx20sp1' + GetArchitectureString() + '.exe',
'/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20sp1_title'),
CustomMessage('dotnetfx20sp1_size'),
GetString(dotnetfx20sp1_url, dotnetfx20sp1_url_x64, dotnetfx20sp1_url_ia64),
false, false);
end;

View file

@ -0,0 +1,28 @@
//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();
begin
if (ActiveLanguage() <> 'en') then begin
if (netfxspversion(NetFx20, CustomMessage('dotnetfx20sp1lp_lcid')) < 1) then
AddProduct('dotnetfx20sp1' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
'/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20sp1lp_title'),
CustomMessage('dotnetfx20sp1lp_size'),
CustomMessage('dotnetfx20sp1lp_url' + GetArchitectureString()),
false, false);
end;
end;

View file

@ -0,0 +1,25 @@
//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();
begin
if (netfxspversion(NetFx20, '') < 2) then
AddProduct('dotnetfx20sp2' + GetArchitectureString() + '.exe',
'/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20sp2_title'),
CustomMessage('dotnetfx20sp2_size'),
GetString(dotnetfx20sp2_url, dotnetfx20sp2_url_x64, dotnetfx20sp2_url_ia64),
false, false);
end;

View file

@ -0,0 +1,28 @@
//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();
begin
if (ActiveLanguage() <> 'en') then begin
if (netfxspversion(NetFx20, CustomMessage('dotnetfx20sp2lp_lcid')) < 2) then
AddProduct('dotnetfx20sp2' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
'/lang:enu /passive /norestart"',
CustomMessage('dotnetfx20sp2lp_title'),
CustomMessage('dotnetfx20sp2lp_size'),
CustomMessage('dotnetfx20sp2lp_url' + GetArchitectureString()),
false, false);
end;
end;

View file

@ -0,0 +1,25 @@
// 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
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();
begin
if (netfxinstalled(NetFx35, '') = false) then
AddProduct('dotnetfx35' + GetArchitectureString() + '.exe',
'/lang:enu /passive /norestart',
CustomMessage('dotnetfx35_title'),
CustomMessage('dotnetfx35_size'),
dotnetfx35_url,
false, false);
end;

View file

@ -0,0 +1,24 @@
[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();
begin
if (ActiveLanguage() <> 'en') then begin
if (not netfxinstalled(NetFx35, CustomMessage('dotnetfx35lp_lcid'))) then
AddProduct('dotnetfx35' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
'/lang:enu /passive /norestart',
CustomMessage('dotnetfx35lp_title'),
CustomMessage('dotnetfx35lp_size'),
CustomMessage('dotnetfx35lp_url'),
false, false);
end;
end;

View file

@ -0,0 +1,26 @@
// 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();
begin
if (netfxspversion(NetFx35, '') < 1) then
AddProduct('dotnetfx35sp1' + GetArchitectureString() + '.exe',
'/lang:enu /passive /norestart',
CustomMessage('dotnetfx35sp1_title'),
CustomMessage('dotnetfx35sp1_size'),
dotnetfx35sp1_url,
false, false);
end;

View file

@ -0,0 +1,24 @@
[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();
begin
if (ActiveLanguage() <> 'en') then begin
if (netfxspversion(NetFx35, CustomMessage('dotnetfx35sp1lp_lcid')) < 1) then
AddProduct('dotnetfx35sp1' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
'/lang:enu /passive /norestart',
CustomMessage('dotnetfx35sp1lp_title'),
CustomMessage('dotnetfx35sp1lp_size'),
CustomMessage('dotnetfx35sp1lp_url'),
false, false);
end;
end;

View file

@ -0,0 +1,30 @@
// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
// requires Windows Installer 3.1
// requires Internet Explorer 5.01
// 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/en/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab
[CustomMessages]
dotnetfx40client_title=.NET Framework 4.0 Client
dotnetfx40client_size=3 MB - 197 MB
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
en.dotnetfx40client_lcid=''
de.dotnetfx40client_lcid='/lcid 1031 '
[Code]
const
dotnetfx40client_url = 'http://download.microsoft.com/download/7/B/6/7B629E05-399A-4A92-B5BC-484C74B5124B/dotNetFx40_Client_setup.exe';
procedure dotnetfx40client();
begin
if (not netfxinstalled(NetFx40Client, '')) then
AddProduct('dotNetFx40_Client_setup.exe',
CustomMessage('dotnetfx40client_lcid') + '/passive /norestart',
CustomMessage('dotnetfx40client_title'),
CustomMessage('dotnetfx40client_size'),
dotnetfx40client_url,
false, false);
end;

View file

@ -0,0 +1,30 @@
// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
// requires Windows Installer 3.1
// requires Internet Explorer 5.01
// 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/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992
[CustomMessages]
dotnetfx40full_title=.NET Framework 4.0 Full
dotnetfx40full_size=3 MB - 197 MB
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
en.dotnetfx40full_lcid=''
de.dotnetfx40full_lcid='/lcid 1031 '
[Code]
const
dotnetfx40full_url = 'http://download.microsoft.com/download/1/B/E/1BE39E79-7E39-46A3-96FF-047F95396215/dotNetFx40_Full_setup.exe';
procedure dotnetfx40full();
begin
if (not netfxinstalled(NetFx40Full, '')) then
AddProduct('dotNetFx40_Full_setup.exe',
CustomMessage('dotnetfx40full_lcid') + '/q /passive /norestart',
CustomMessage('dotnetfx40full_title'),
CustomMessage('dotnetfx40full_size'),
dotnetfx40full_url,
false, false);
end;

View file

@ -0,0 +1,69 @@
[Code]
type
NetFXType = (NetFx10, NetFx11, NetFx20, NetFx30, NetFx35, NetFx40Client, NetFx40Full);
const
netfx11plus_reg = 'Software\Microsoft\NET Framework Setup\NDP\';
function netfxinstalled(version: NetFXType; lcid: string): boolean;
var
regVersion: cardinal;
regVersionString: string;
begin
if (lcid <> '') then
lcid := '\' + lcid;
if (version = NetFx10) then begin
RegQueryStringValue(HKLM, 'Software\Microsoft\.NETFramework\Policy\v1.0\3705', 'Install', regVersionString);
Result := regVersionString <> '';
end else begin
case version of
NetFx11:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'Install', regVersion);
NetFx20:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'Install', regVersion);
NetFx30:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0\Setup' + lcid, 'InstallSuccess', regVersion);
NetFx35:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'Install', regVersion);
NetFx40Client:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Install', regVersion);
NetFx40Full:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Install', regVersion);
end;
Result := (regVersion <> 0);
end;
end;
function netfxspversion(version: NetFXType; lcid: string): integer;
var
regVersion: cardinal;
begin
if (lcid <> '') then
lcid := '\' + lcid;
case version of
NetFx10:
//not supported
regVersion := -1;
NetFx11:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'SP', regVersion)) then
regVersion := -1;
NetFx20:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'SP', regVersion)) then
regVersion := -1;
NetFx30:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0' + lcid, 'SP', regVersion)) then
regVersion := -1;
NetFx35:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'SP', regVersion)) then
regVersion := -1;
NetFx40Client:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Servicing', regVersion)) then
regVersion := -1;
NetFx40Full:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Servicing', regVersion)) then
regVersion := -1;
end;
Result := regVersion;
end;

View file

@ -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;

View file

@ -0,0 +1,28 @@
// 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 (compareversion(version, MinVersion) < 0) then
AddProduct('ie6.exe',
'/q:a /C:"setup /QNT"',
CustomMessage('ie6_title'),
CustomMessage('ie6_size'),
ie6_url,
false, false);
end;

View file

@ -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;

View file

@ -0,0 +1,24 @@
// 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 (compareversion(fileversion(ExpandConstant('{sys}{\}msjet40.dll')), MinVersion) < 0) then
AddProduct('jet4sp8.exe',
'/q:a /c:"install /qb /l"',
CustomMessage('jet4sp8_title'),
CustomMessage('jet4sp8_size'),
jet4sp8_url,
false, false);
end;

View file

@ -0,0 +1,28 @@
// 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 (exactwinversion(5, 0) and (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,
false, false);
end;
end;

View file

@ -0,0 +1,25 @@
[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 (compareversion(version, MinVersion) < 0) then
AddProduct('mdac28.exe',
'/q:a /c:"install /qb /l"',
CustomMessage('mdac28_title'),
CustomMessage('mdac28_size'),
mdac28_url,
false, false);
end;

View file

@ -0,0 +1,22 @@
[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 (IsX86() and maxwinversion(4, 9) and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then
AddProduct('msi20.exe',
'/q:a /c:"msiinst /delayrebootq"',
CustomMessage('msi20_title'),
CustomMessage('msi20_size'),
msi20_url,
false, false);
end;

View file

@ -0,0 +1,22 @@
[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 (IsX86() and minwinversion(5, 0) and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then
AddProduct('msi31.exe',
'/passive /norestart',
CustomMessage('msi31_title'),
CustomMessage('msi31_size'),
msi31_url,
false, false);
end;

View file

@ -0,0 +1,45 @@
[CustomMessages]
msi45_title=Windows Installer 4.5
en.msi45win60_size=1.7 MB
de.msi45win60_size=1,7 MB
en.msi45win52_size=3.0 MB
de.msi45win52_size=3,0 MB
en.msi45win51_size=3.2 MB
de.msi45win51_size=3,2 MB
[Code]
const
msi45win60_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/Windows6.0-KB942288-v2-x86.msu';
msi45win52_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsServer2003-KB942288-v4-x86.exe';
msi45win51_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsXP-KB942288-v3-x86.exe';
procedure msi45(MinVersion: string);
begin
if (IsX86() and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then begin
if minwinversion(6, 0) then
AddProduct('msi45_60.msu',
'/quiet /norestart',
CustomMessage('msi45_title'),
CustomMessage('msi45win60_size'),
msi45win60_url,
false, false)
else if minwinversion(5, 2) then
AddProduct('msi45_52.exe',
'/quiet /norestart',
CustomMessage('msi45_title'),
CustomMessage('msi45win52_size'),
msi45win52_url,
false, false)
else if minwinversion(5, 1) then
AddProduct('msi45_51.exe',
'/quiet /norestart',
CustomMessage('msi45_title'),
CustomMessage('msi45win51_size'),
msi45win51_url,
false, false);
end;
end;

View file

@ -0,0 +1,42 @@
// SQL Server Express is supported on x64 and EMT64 systems in Windows On Windows (WOW). SQL Server Express is not supported on IA64 systems
// requires Microsoft .NET Framework 2.0 or later
// SQLEXPR32.EXE is a smaller package that can be used to install SQL Server Express on 32-bit operating systems only. The larger SQLEXPR.EXE package supports installing onto both 32-bit and 64-bit (WOW install) operating systems. There is no other difference between these packages.
// http://www.microsoft.com/download/en/details.aspx?id=15291
[CustomMessages]
sql2005express_title=SQL Server 2005 Express SP3
en.sql2005express_size=38.1 MB
de.sql2005express_size=38,1 MB
en.sql2005express_size_x64=58.1 MB
de.sql2005express_size_x64=58,1 MB
[Code]
const
sql2005express_url = 'http://download.microsoft.com/download/4/B/E/4BED5810-C8C0-4697-BDC3-DBC114B8FF6D/SQLEXPR32_NLA.EXE';
sql2005express_url_x64 = 'http://download.microsoft.com/download/4/B/E/4BED5810-C8C0-4697-BDC3-DBC114B8FF6D/SQLEXPR_NLA.EXE';
procedure sql2005express();
var
version: string;
begin
//CHECK NOT FINISHED YET
//RTM: 9.00.1399.06
//Service Pack 1: 9.1.2047.00
//Service Pack 2: 9.2.3042.00
// Newer detection method required for SP3 and x64
//Service Pack 3: 9.00.4035.00
//RegQueryDWordValue(HKLM, 'Software\Microsoft\Microsoft SQL Server\90\DTS\Setup', 'Install', version);
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion', 'CurrentVersion', version);
if (version < '9.00.4035') then begin
if (not isIA64()) then
AddProduct('sql2005express' + GetArchitectureString() + '.exe',
'/qb ADDLOCAL=ALL INSTANCENAME=SQLEXPRESS',
CustomMessage('sql2005express_title'),
CustomMessage('sql2005express_size' + GetArchitectureString()),
GetString(sql2005express_url, sql2005express_url_x64, ''),
false, false);
end;
end;

View file

@ -0,0 +1,39 @@
// requires Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP
// requires Microsoft .NET Framework 3.5 SP 1 or later
// requires Windows Installer 4.5 or later
// SQL Server Express is supported on x64 and EMT64 systems in Windows On Windows (WOW). SQL Server Express is not supported on IA64 systems
// SQLEXPR32.EXE is a smaller package that can be used to install SQL Server Express on 32-bit operating systems only. The larger SQLEXPR.EXE package supports installing onto both 32-bit and 64-bit (WOW install) operating systems. There is no other difference between these packages.
// http://www.microsoft.com/download/en/details.aspx?id=3743
[CustomMessages]
sql2008expressr2_title=SQL Server 2008 Express R2
en.sql2008expressr2_size=58.2 MB
de.sql2008expressr2_size=58,2 MB
en.sql2008expressr2_size_x64=74.1 MB
de.sql2008expressr2_size_x64=74,1 MB
[Code]
const
sql2008expressr2_url = 'http://download.microsoft.com/download/5/1/A/51A153F6-6B08-4F94-A7B2-BA1AD482BC75/SQLEXPR32_x86_ENU.exe';
sql2008expressr2_url_x64 = 'http://download.microsoft.com/download/5/1/A/51A153F6-6B08-4F94-A7B2-BA1AD482BC75/SQLEXPR_x64_ENU.exe';
procedure sql2008express();
var
version: string;
begin
// This check does not take into account that a full version of SQL Server could be installed,
// making Express unnecessary.
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion', 'CurrentVersion', version);
if (compareversion(version, '10.5') < 0) then begin
if (not isIA64()) then
AddProduct('sql2008expressr2' + GetArchitectureString() + '.exe',
'/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=All /INSTANCENAME=SQLEXPRESS /SQLSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSYSADMINACCOUNTS="builtin\administrators"',
CustomMessage('sql2008expressr2_title'),
CustomMessage('sql2008expressr2_size' + GetArchitectureString()),
GetString(sql2008expressr2_url, sql2008expressr2_url_x64, ''),
false, false);
end;
end;

View file

@ -0,0 +1,21 @@
[CustomMessages]
sqlcompact35sp2_title=SQL Server Compact 3.5 Service Pack 2
en.sqlcompact35sp2_size=5.3 MB
de.sqlcompact35sp2_size=5,3 MB
[Code]
const
sqlcompact35sp2_url = 'http://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe';
procedure sqlcompact35sp2();
begin
if (isX86() and not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5')) then
AddProduct('sqlcompact35sp2.msi',
'/qb',
CustomMessage('sqlcompact35sp2_title'),
CustomMessage('sqlcompact35sp2_size'),
sqlcompact35sp2_url,
false, false);
end;

View file

@ -0,0 +1,52 @@
function stringtoversion(var temp: String): Integer;
var
part: String;
pos1: Integer;
begin
if (Length(temp) = 0) then begin
Result := -1;
Exit;
end;
pos1 := Pos('.', temp);
if (pos1 = 0) then begin
Result := StrToInt(temp);
temp := '';
end else begin
part := Copy(temp, 1, pos1 - 1);
temp := Copy(temp, pos1 + 1, Length(temp));
Result := StrToInt(part);
end;
end;
function compareinnerversion(var x, y: String): Integer;
var
num1, num2: Integer;
begin
num1 := stringtoversion(x);
num2 := stringtoversion(y);
if (num1 = -1) or (num2 = -1) then begin
Result := 0;
Exit;
end;
if (num1 < num2) then begin
Result := -1;
end else if (num1 > num2) then begin
Result := 1;
end else begin
Result := compareinnerversion(x, y);
end;
end;
function compareversion(versionA, versionB: String): Integer;
var
temp1, temp2: String;
begin
temp1 := versionA;
temp2 := versionB;
Result := compareinnerversion(temp1, temp2);
end;

View file

@ -0,0 +1,45 @@
// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
// requires Windows Installer 3.1 or later
// requires Internet Explorer 5.01 or later
// http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992
[CustomMessages]
vcredist2010_title=Visual C++ 2010 Redistributable
en.vcredist2010_size=4.8 MB
de.vcredist2010_size=4,8 MB
en.vcredist2010_size_x64=5.5 MB
de.vcredist2010_size_x64=5,5 MB
en.vcredist2010_size_ia64=2.2 MB
de.vcredist2010_size_ia64=2,2 MB
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
en.vcredist2010_lcid=''
de.vcredist2010_lcid='/lcid 1031 '
[Code]
const
vcredist2010_url = 'http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe';
vcredist2010_url_x64 = 'http://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe';
vcredist2010_url_ia64 = 'http://download.microsoft.com/download/3/3/A/33A75193-2CBC-424E-A886-287551FF1EB5/vcredist_IA64.exe';
procedure vcredist2010();
var
version: cardinal;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\' + GetString('x86', 'x64', 'ia64'), 'Installed', version);
if ((version <> 1)) then
RegQueryDWordValue(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\' + GetString('x86', 'x64', 'ia64'), 'Installed', version);
if ((version <> 1)) then
AddProduct('vcredist2010' + GetArchitectureString() + '.exe',
CustomMessage('vcredist2010_lcid') + '/passive /norestart',
CustomMessage('vcredist2010_title'),
CustomMessage('vcredist2010_size' + GetArchitectureString()),
GetString(vcredist2010_url, vcredist2010_url_x64, vcredist2010_url_ia64),
false, false);
end;

View file

@ -0,0 +1,55 @@
//requires Windows Server 2003, Windows Server 2003 R2 Datacenter Edition (32-Bit x86), Windows Server 2003 R2 Enterprise Edition (32-Bit x86), Windows Server 2003 R2 Standard Edition (32-bit x86), Windows XP Service Pack 2
[CustomMessages]
wic_title=Windows Imaging Component
en.wic_size=1.2 MB
de.wic_size=1,2 MB
[Code]
const
wic_url = 'http://download.microsoft.com/download/f/f/1/ff178bb1-da91-48ed-89e5-478a99387d4f/wic_x86_';
wic_url_x64 = 'http://download.microsoft.com/download/6/4/5/645fed5f-a6e7-44d9-9d10-fe83348796b0/wic_x64';
function GetConvertedLanguageID(): string;
begin
case ActiveLanguage() of
'en': //English
Result := 'enu';
'zh': //Chinese
Result := 'chs';
'de': //German
Result := 'deu';
'es': //Spanish
Result := 'esn';
'fr': //French
Result := 'fra';
'it': //Italian
Result := 'ita';
'ja': //Japanese
Result := 'jpn';
'nl': //Dutch
Result := 'nld';
'pt': //Portuguese
Result := 'ptb';
'ru': //Russian
Result := 'rus';
end;
end;
procedure wic();
begin
if (not isIA64()) then begin
//only needed on Windows XP SP2 or Windows Server 2003
if ((exactwinversion(5, 1) and exactwinspversion(5, 1, 2)) or (exactwinversion(5, 2))) then begin
if (not FileExists(GetEnv('windir') + '\system32\windowscodecs.dll')) then
AddProduct('wic' + GetArchitectureString() + '_' + GetConvertedLanguageID() + '.exe',
'/q',
CustomMessage('wic_title'),
CustomMessage('wic_size'),
GetString(wic_url, wic_url_x64, '') + GetConvertedLanguageID() + '.exe',
false, false);
end;
end;
end;

View file

@ -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;

View file

@ -1,6 +1,6 @@
#define MyAppName "ShareX"
#define MyAppFile "ShareX.exe"
#define MyAppPath "ShareX\bin\Release\ShareX.exe"
#define MyAppPath "..\ShareX\bin\Release\ShareX.exe"
#dim Version[4]
#expr ParseVersion(MyAppPath, Version[0], Version[1], Version[2], Version[3])
#define MyAppVersion Str(Version[0]) + "." + Str(Version[1]) + "." + Str(Version[2])
@ -26,10 +26,10 @@ CreateAppDir=true
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
DirExistsWarning=no
InfoBeforeFile=Docs\VersionHistory.txt
InfoBeforeFile=..\Docs\VersionHistory.txt
InternalCompressLevel=ultra64
LanguageDetectionMethod=uilanguage
LicenseFile=LICENSE.txt
LicenseFile=..\LICENSE.txt
MinVersion=0,5.01.2600
OutputBaseFilename={#MyAppName}-{#MyAppVersion}-setup
OutputDir=Output\
@ -47,7 +47,8 @@ VersionInfoTextVersion={#MyAppVersion}
VersionInfoVersion={#MyAppVersion}
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "de"; MessagesFile: "compiler:Languages\German.isl"
[Tasks]
Name: "CreateDesktopIcon"; Description: "Create a desktop shortcut"; GroupDescription: "Additional shortcuts:"
@ -56,14 +57,14 @@ Name: "CreateSendToIcon"; Description: "Create a send to shortcut"; GroupDescrip
Name: "CreateStartupIcon"; Description: "Launch {#MyAppName} automatically at Windows startup"; GroupDescription: "Other tasks:"; Flags: unchecked
[Files]
Source: "ShareX\bin\Release\*.exe"; Excludes: *.vshost.exe; DestDir: {app}; Flags: ignoreversion
Source: "ShareX\bin\Release\*.dll"; DestDir: {app}; Flags: ignoreversion
Source: "ShareX\bin\Release\*.css"; DestDir: {app}; Flags: ignoreversion
Source: "ShareX\bin\Release\*.txt"; DestDir: {app}; Flags: ignoreversion
Source: "Lib\screen-capture-recorder.dll"; DestDir: {app}; Flags: regserver 32bit; Check: IsAdminLoggedOn
Source: "Lib\screen-capture-recorder-x64.dll"; DestDir: {app}; Flags: regserver 64bit; Check: IsAdminLoggedOn and IsWin64
Source: "Lib\audio_sniffer.dll"; DestDir: {app}; Flags: regserver 32bit; Check: IsAdminLoggedOn
Source: "Lib\audio_sniffer-x64.dll"; DestDir: {app}; Flags: regserver 64bit; Check: IsAdminLoggedOn and IsWin64
Source: "..\ShareX\bin\Release\*.exe"; Excludes: *.vshost.exe; DestDir: {app}; Flags: ignoreversion
Source: "..\ShareX\bin\Release\*.dll"; DestDir: {app}; Flags: ignoreversion
Source: "..\ShareX\bin\Release\*.css"; DestDir: {app}; Flags: ignoreversion
Source: "..\ShareX\bin\Release\*.txt"; DestDir: {app}; Flags: ignoreversion
Source: "..\Lib\screen-capture-recorder.dll"; DestDir: {app}; Flags: regserver 32bit; Check: IsAdminLoggedOn
Source: "..\Lib\screen-capture-recorder-x64.dll"; DestDir: {app}; Flags: regserver 64bit; Check: IsAdminLoggedOn and IsWin64
Source: "..\Lib\audio_sniffer.dll"; DestDir: {app}; Flags: regserver 32bit; Check: IsAdminLoggedOn
Source: "..\Lib\audio_sniffer-x64.dll"; DestDir: {app}; Flags: regserver 64bit; Check: IsAdminLoggedOn and IsWin64
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppFile}"; WorkingDir: "{app}"
@ -82,7 +83,27 @@ Root: "HKCU"; Subkey: "Software\Classes\*\shell\{#MyAppName}"; Flags: dontcreate
Root: "HKCU"; Subkey: "Software\Classes\Directory\shell\{#MyAppName}"; Flags: dontcreatekey uninsdeletekey
Root: "HKCU"; Subkey: "Software\Classes\Folder\shell\{#MyAppName}"; Flags: dontcreatekey uninsdeletekey
#include "Scripts\products.iss"
#include "Scripts\products\stringversion.iss"
#include "Scripts\products\winversion.iss"
#include "Scripts\products\fileversion.iss"
#include "Scripts\products\dotnetfxversion.iss"
#include "Scripts\products\msi31.iss"
#include "Scripts\products\dotnetfx40full.iss"
#include "Scripts\products\vcredist2010.iss"
[Code]
function InitializeSetup(): Boolean;
begin
initwinversion();
msi31('3.1');
dotnetfx40full();
vcredist2010();
Result := true;
end;
function DesktopIconExists(): Boolean;
begin
Result := FileExists(ExpandConstant('{userdesktop}\{#MyAppName}.lnk'));