Enhanced Installer

git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@766 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4
This commit is contained in:
RKrom 2010-08-03 12:53:30 +00:00
commit f8f8983e52
46 changed files with 1698 additions and 30 deletions

Binary file not shown.

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,12 @@
[Files]
Source: "scripts\isxdl\isxdl.dll"; Flags: dontcopy
[Code]
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';
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,188 @@
#include "scripts\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
de.isxdl_langfile=german2.ini
[Files]
Source: "scripts\isxdl\german2.ini"; Flags: dontcopy
[Code]
type
TProduct = record
File: String;
Title: String;
Parameters: String;
end;
var
installMemo, downloadMemo, downloadMessage: string;
products: array of TProduct;
DependencyPage: TOutputProgressWizardPage;
procedure AddProduct(FileName, Parameters, Title, Size, URL: string);
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;
end;
function InstallProducts: Boolean;
var
ResultCode, i, productCount, finishCount: Integer;
begin
Result := true;
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
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;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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