mirror of
https://github.com/greenshot/greenshot.git
synced 2025-01-10 15:52:48 -08:00
660 lines
41 KiB
Plaintext
660 lines
41 KiB
Plaintext
#define ExeName "Greenshot"
|
||
#define Version "@VERSION@"
|
||
#define FileVersion "@FILEVERSION@"
|
||
|
||
; Include the scripts to install .NET Framework
|
||
; See http://www.codeproject.com/KB/install/dotnetfx_innosetup_instal.aspx
|
||
#include "scripts\products.iss"
|
||
#include "scripts\products\stringversion.iss"
|
||
#include "scripts\products\winversion.iss"
|
||
#include "scripts\products\fileversion.iss"
|
||
#include "scripts\products\msi20.iss"
|
||
#include "scripts\products\msi31.iss"
|
||
#include "scripts\products\dotnetfxversion.iss"
|
||
#include "scripts\products\dotnetfx35sp1.iss"
|
||
|
||
[Files]
|
||
Source: ..\..\bin\Release\Greenshot.exe; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||
Source: ..\..\bin\Release\GreenshotPlugin.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||
Source: ..\..\bin\Release\Greenshot.exe.config; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||
Source: ..\..\bin\Release\log4net.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||
Source: ..\..\bin\Release\LinqBridge.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion
|
||
Source: ..\..\log4net.xml; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion
|
||
Source: ..\..\bin\Release\checksum.MD5; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||
;Source: ..\greenshot-defaults.ini; DestDir: {app}; Flags: overwritereadonly ignoreversion replacesameversion
|
||
Source: ..\additional_files\installer.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
|
||
Source: ..\additional_files\license.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
|
||
Source: ..\additional_files\readme.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
|
||
|
||
; Core language files
|
||
Source: ..\..\Languages\*nl-NL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*en-US*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*de-DE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
|
||
; Additional language files
|
||
Source: ..\..\Languages\*ar-SY*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\arSY; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*ca-CA*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\caCA; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*cs-CZ*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\csCZ; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*da-DK*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\daDK; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*de-x-franconia*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\dexfranconia; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*el-GR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\elGR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*es-ES*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\esES; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*et-EE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\etEE; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*fa-IR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\faIR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*fi-FI*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\fiFI; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*fr-FR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\frFR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*fr-QC*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\frQC; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*he-IL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\heIL; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*hu-HU*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\huHU; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*id-ID*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\idID; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*it-IT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\itIT; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*ja-JP*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\jaJP; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*ko-KR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\koKR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*lt-LT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ltLT; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*lv-LV*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\lvLV; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*nn-NO*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\nnNO; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*pl-PL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\plPL; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*pt-BR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ptBR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*pt-PT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ptPT; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*ro-RO*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\roRO; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*ru-RU*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ruRU; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*sk-SK*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\skSK; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*sl-SI*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\slSI; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*sr-RS*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\srRS; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*sv-SE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\svSE; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*tr-TR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\trTR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*uk-UA*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ukUA; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*vi-VN*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\viVN; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*zh-CN*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\zhCN; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
Source: ..\..\Languages\*zh-TW*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\zhTW; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
|
||
;Office Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotOfficePlugin\GreenshotOfficePlugin.gsp; DestDir: {app}\Plugins\GreenshotOfficePlugin; Components: plugins\office; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
;OCR Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRPlugin.gsp; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRCommand.exe; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRCommand.exe.config; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotOCRPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;JIRA Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotJiraPlugin\GreenshotJiraPlugin.gsp; DestDir: {app}\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotJiraPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;Imgur Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotImgurPlugin\GreenshotImgurPlugin.gsp; DestDir: {app}\Plugins\GreenshotImgurPlugin; Components: plugins\imgur; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotImgurPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotImgurPlugin; Components: plugins\imgur; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;Box Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotBoxPlugin\GreenshotBoxPlugin.gsp; DestDir: {app}\Plugins\GreenshotBoxPlugin; Components: plugins\box; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotBoxPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotBoxPlugin; Components: plugins\box; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;DropBox Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotDropBoxPlugin\GreenshotDropboxPlugin.gsp; DestDir: {app}\Plugins\GreenshotDropBoxPlugin; Components: plugins\dropbox; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotDropBoxPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotDropBoxPlugin; Components: plugins\dropbox; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;Flickr Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotFlickrPlugin\GreenshotFlickrPlugin.gsp; DestDir: {app}\Plugins\GreenshotFlickrPlugin; Components: plugins\flickr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotFlickrPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotFlickrPlugin; Components: plugins\flickr; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;Photobucket Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotPhotobucketPlugin\GreenshotPhotobucketPlugin.gsp; DestDir: {app}\Plugins\GreenshotPhotobucketPlugin; Components: plugins\photobucket; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotPhotobucketPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotPhotobucketPlugin; Components: plugins\photobucket; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;Picasa Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotPicasaPlugin\GreenshotPicasaPlugin.gsp; DestDir: {app}\Plugins\GreenshotPicasaPlugin; Components: plugins\picasa; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotPicasaPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotPicasaPlugin; Components: plugins\picasa; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;Confluence Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotConfluencePlugin\GreenshotConfluencePlugin.gsp; DestDir: {app}\Plugins\GreenshotConfluencePlugin; Components: plugins\confluence; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotConfluencePlugin\*; DestDir: {app}\Languages\Plugins\GreenshotConfluencePlugin; Components: plugins\confluence; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;ExternalCommand Plugin
|
||
Source: ..\..\bin\Release\Plugins\GreenshotExternalCommandPlugin\GreenshotExternalCommandPlugin.gsp; DestDir: {app}\Plugins\GreenshotExternalCommandPlugin; Components: plugins\externalcommand; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotExternalCommandPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotExternalCommandPlugin; Components: plugins\externalcommand; Flags: overwritereadonly ignoreversion replacesameversion;
|
||
;Win 10 Plugin
|
||
;Source: ..\..\bin\Release\Plugins\GreenshotWin10Plugin\GreenshotWin10Plugin.gsp; DestDir: {app}\Plugins\GreenshotWin10Plugin; Components: plugins\win10; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||
[Setup]
|
||
; changes associations is used when the installer installs new extensions, it clears the explorer icon cache
|
||
ChangesAssociations=yes
|
||
AppId={#ExeName}
|
||
AppName={#ExeName}
|
||
AppMutex=F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08
|
||
AppPublisher={#ExeName}
|
||
AppPublisherURL=http://getgreenshot.org
|
||
AppSupportURL=http://getgreenshot.org
|
||
AppUpdatesURL=http://getgreenshot.org
|
||
AppVerName={#ExeName} {#Version}
|
||
AppVersion={#Version}
|
||
ArchitecturesInstallIn64BitMode=x64
|
||
Compression=lzma2/ultra64
|
||
SolidCompression=yes
|
||
DefaultDirName={code:DefDirRoot}\{#ExeName}
|
||
DefaultGroupName={#ExeName}
|
||
InfoBeforeFile=..\additional_files\readme.txt
|
||
LicenseFile=..\additional_files\license.txt
|
||
LanguageDetectionMethod=uilanguage
|
||
MinVersion=0,5.01.2600
|
||
OutputBaseFilename={#ExeName}-INSTALLER-{#FileVersion}
|
||
OutputDir=..\
|
||
PrivilegesRequired=none
|
||
SetupIconFile=..\..\icons\applicationIcon\icon.ico
|
||
; Create a SHA1 signature
|
||
SignTool=SignTool sign /debug /fd sha1 /tr http://time.certum.pl /td sha1 $f
|
||
; Append a SHA256 to the previous SHA1 signature (this is what as does)
|
||
SignTool=SignTool sign /debug /as /fd sha256 /tr http://time.certum.pl /td sha256 $f
|
||
SignedUninstaller=yes
|
||
UninstallDisplayIcon={app}\{#ExeName}.exe
|
||
Uninstallable=true
|
||
VersionInfoCompany={#ExeName}
|
||
VersionInfoProductName={#ExeName}
|
||
VersionInfoTextVersion={#Version}
|
||
VersionInfoVersion={#Version}
|
||
; Reference a bitmap, max size 164x314
|
||
WizardImageFile=installer-large.bmp
|
||
; Reference a bitmap, max size 55x58
|
||
WizardSmallImageFile=installer-small.bmp
|
||
[Registry]
|
||
; Delete all startup entries, so we don't have leftover values
|
||
Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
|
||
Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
|
||
Root: HKCU32; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror; Check: IsWin64()
|
||
Root: HKLM32; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror; Check: IsWin64()
|
||
|
||
; delete filetype mappings
|
||
; HKEY_LOCAL_USER - for current user only
|
||
Root: HKCU; Subkey: Software\Classes\.greenshot; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
|
||
Root: HKCU; Subkey: Software\Classes\Greenshot; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
|
||
; HKEY_LOCAL_MACHINE - for all users when admin (with the noerror this doesn't matter)
|
||
Root: HKLM; Subkey: Software\Classes\.greenshot; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
|
||
Root: HKLM; Subkey: Software\Classes\Greenshot; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
|
||
|
||
; Create the startup entries if requested to do so
|
||
; HKEY_LOCAL_USER - for current user only
|
||
Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: {#ExeName}; ValueData: {app}\{#ExeName}.exe; Permissions: users-modify; Flags: uninsdeletevalue noerror; Tasks: startup; Check: IsRegularUser
|
||
; HKEY_LOCAL_MACHINE - for all users when admin
|
||
Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: {#ExeName}; ValueData: {app}\{#ExeName}.exe; Permissions: admins-modify; Flags: uninsdeletevalue noerror; Tasks: startup; Check: not IsRegularUser
|
||
|
||
; Register our own filetype for all users
|
||
; HKEY_LOCAL_USER - for current user only
|
||
Root: HKCU; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot"; Permissions: users-modify; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||
Root: HKCU; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Permissions: users-modify; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||
Root: HKCU; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Permissions: users-modify; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||
Root: HKCU; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Permissions: users-modify; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||
; HKEY_LOCAL_MACHINE - for all users when admin
|
||
Root: HKLM; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot"; Permissions: admins-modify; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||
Root: HKLM; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Permissions: admins-modify; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||
Root: HKLM; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Permissions: admins-modify; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||
Root: HKLM; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Permissions: admins-modify; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||
|
||
[Icons]
|
||
Name: {group}\{#ExeName}; Filename: {app}\{#ExeName}.exe; WorkingDir: {app}
|
||
Name: {group}\Uninstall {#ExeName}; Filename: {uninstallexe}; WorkingDir: {app}; AppUserModelID: "{#ExeName}.{#ExeName}"
|
||
Name: {group}\Readme.txt; Filename: {app}\readme.txt; WorkingDir: {app}
|
||
Name: {group}\License.txt; Filename: {app}\license.txt; WorkingDir: {app}
|
||
[Languages]
|
||
Name: en; MessagesFile: compiler:Default.isl
|
||
Name: cn; MessagesFile: Languages\ChineseSimplified.isl
|
||
Name: de; MessagesFile: compiler:Languages\German.isl
|
||
Name: es; MessagesFile: compiler:Languages\Spanish.isl
|
||
Name: fi; MessagesFile: compiler:Languages\Finnish.isl
|
||
Name: fr; MessagesFile: compiler:Languages\French.isl
|
||
Name: nl; MessagesFile: compiler:Languages\Dutch.isl
|
||
Name: lt; MessagesFile: Languages\Latvian.isl
|
||
Name: nn; MessagesFile: Languages\NorwegianNynorsk.isl
|
||
Name: sr; MessagesFile: compiler:Languages\SerbianCyrillic.isl
|
||
Name: sv; MessagesFile: Languages\Swedish.isl
|
||
Name: uk; MessagesFile: compiler:Languages\Ukrainian.isl
|
||
|
||
[Tasks]
|
||
Name: startup; Description: {cm:startup}
|
||
|
||
[CustomMessages]
|
||
|
||
de.confluence=Confluence Plug-in
|
||
de.default=Standard installation
|
||
en.office=Microsoft Office Plug-in
|
||
de.externalcommand=Externes Kommando Plug-in
|
||
de.imgur=Imgur Plug-in (Siehe: http://imgur.com)
|
||
de.jira=Jira Plug-in
|
||
de.language=Zusätzliche Sprachen
|
||
de.ocr=OCR Plug-in (benötigt Microsoft Office Document Imaging (MODI))
|
||
de.optimize=Optimierung der Leistung, kann etwas dauern.
|
||
de.startgreenshot={#ExeName} starten
|
||
de.startup={#ExeName} starten wenn Windows hochfährt
|
||
de.win10=Windows 10 Plug-in
|
||
|
||
en.confluence=Confluence plug-in
|
||
en.default=Default installation
|
||
en.office=Microsoft Office plug-in
|
||
en.externalcommand=Open with external command plug-in
|
||
en.imgur=Imgur plug-in (See: http://imgur.com)
|
||
en.jira=Jira plug-in
|
||
en.language=Additional languages
|
||
en.ocr=OCR plug-in (needs Microsoft Office Document Imaging (MODI))
|
||
en.optimize=Optimizing performance, this may take a while.
|
||
en.startgreenshot=Start {#ExeName}
|
||
en.startup=Start {#ExeName} with Windows start
|
||
en.win10=Windows 10 plug-in
|
||
|
||
es.confluence=Extensión para Confluence
|
||
es.default=${default}
|
||
es.externalcommand=Extensión para abrir con programas externos
|
||
es.imgur=Extensión para Imgur (Ver http://imgur.com)
|
||
es.jira=Extensión para Jira
|
||
es.language=Idiomas adicionales
|
||
es.ocr=Extensión para OCR (necesita Microsoft Office Document Imaging (MODI))
|
||
es.optimize=Optimizando rendimiento; por favor, espera.
|
||
es.startgreenshot=Lanzar {#ExeName}
|
||
es.startup=Lanzar {#ExeName} al iniciarse Windows
|
||
es.win10=Extensión para Windows 10
|
||
|
||
fi.confluence=Confluence-liitännäinen
|
||
fi.default=${default}
|
||
fi.office=Microsoft-Office-liitännäinen
|
||
fi.externalcommand=Avaa Ulkoinen komento-liitännäisellä
|
||
fi.imgur=Imgur-liitännäinen (Katso: http://imgur.com)
|
||
fi.jira=Jira-liitännäinen
|
||
fi.language=Lisäkielet
|
||
fi.ocr=OCR-liitännäinen (Tarvitaan: Microsoft Office Document Imaging (MODI))
|
||
fi.optimize=Optimoidaan suorituskykyä, tämä voi kestää hetken.
|
||
fi.startgreenshot=Käynnistä {#ExeName}
|
||
fi.startup=Käynnistä {#ExeName} Windowsin käynnistyessä
|
||
fi.win10=Windows 10-liitännäinen
|
||
|
||
fr.confluence=Greffon Confluence
|
||
fr.default=${default}
|
||
fr.office=Greffon Microsoft Office
|
||
fr.externalcommand=Ouvrir avec le greffon de commande externe
|
||
fr.imgur=Greffon Imgur (Voir: http://imgur.com)
|
||
fr.jira=Greffon Jira
|
||
fr.language=Langues additionnelles
|
||
fr.ocr=Greffon OCR (nécessite Document Imaging de Microsoft Office [MODI])
|
||
fr.optimize=Optimisation des performances, Ceci peut prendre un certain temps.
|
||
fr.startgreenshot=Démarrer {#ExeName}
|
||
fr.startup=Lancer {#ExeName} au démarrage de Windows
|
||
fr.win10=Greffon Windows 10
|
||
|
||
lt.confluence=Confluence spraudnis
|
||
lt.default=${default}
|
||
lt.office=Microsoft Office spraudnis
|
||
lt.externalcommand=Pielāgotu darbību spraudnis
|
||
lt.imgur=Imgur spraudnis (Vairāk šeit: http://imgur.com)
|
||
lt.jira=Jira spraudnis
|
||
lt.language=Papildus valodas
|
||
lt.ocr=OCR spraudnis (nepieciešams Microsoft Office Document Imaging (MODI))
|
||
lt.optimize=Uzlaboju veikstpēju, tas prasīs kādu laiciņu.
|
||
lt.startgreenshot=Palaist {#ExeName}
|
||
lt.startup=Palaist {#ExeName} uzsākot darbus
|
||
lt.win10=Windows 10 spraudnis
|
||
|
||
nl.confluence=Confluence plug-in
|
||
nl.default=Default installation
|
||
nl.office=Microsoft Office plug-in
|
||
nl.externalcommand=Open met externes commando plug-in
|
||
nl.imgur=Imgur plug-in (Zie: http://imgur.com)
|
||
nl.jira=Jira plug-in
|
||
nl.language=Extra talen
|
||
nl.ocr=OCR plug-in (heeft Microsoft Office Document Imaging (MODI) nodig)
|
||
nl.optimize=Prestaties verbeteren, kan even duren.
|
||
nl.startgreenshot=Start {#ExeName}
|
||
nl.startup=Start {#ExeName} wanneer Windows opstart
|
||
nl.win10=Windows 10 plug-in
|
||
|
||
nn.confluence=Confluence-tillegg
|
||
nn.default=Default installation
|
||
nn.office=Microsoft Office Tillegg
|
||
nn.externalcommand=Tillegg for å opne med ekstern kommando
|
||
nn.imgur=Imgur-tillegg (sjå http://imgur.com)
|
||
nn.jira=Jira-tillegg
|
||
nn.language=Andre språk
|
||
nn.ocr=OCR-tillegg (krev Microsoft Office Document Imaging (MODI))
|
||
nn.optimize=Optimaliserar ytelse, dette kan ta litt tid...
|
||
nn.startgreenshot=Start {#ExeName}
|
||
nn.startup=Start {#ExeName} når Windows startar
|
||
nn.win10=Windows 10 Tillegg
|
||
|
||
sr.confluence=Прикључак за Конфлуенс
|
||
sr.default=${default}
|
||
sr.externalcommand=Отвори са прикључком за спољне наредбе
|
||
sr.imgur=Прикључак за Имиџер (http://imgur.com)
|
||
sr.jira=Прикључак за Џиру
|
||
sr.language=Додатни језици
|
||
sr.ocr=OCR прикључак (захтева Microsoft Office Document Imaging (MODI))
|
||
sr.optimize=Оптимизујем перформансе…
|
||
sr.startgreenshot=Покрени Гриншот
|
||
sr.startup=Покрени програм са системом
|
||
sr.win10=Прикључак за Windows 10
|
||
|
||
sv.startup=Starta {#ExeName} med Windows
|
||
sv.startgreenshot=Starta {#ExeName}
|
||
sv.jira=Jira-insticksprogram
|
||
sv.confluence=Confluence-insticksprogram
|
||
sv.externalcommand=Öppna med externt kommando-insticksprogram
|
||
sv.ocr=OCR-insticksprogram (kräver Microsoft Office Document Imaging (MODI))
|
||
sv.imgur=Imgur-insticksprogram (Se: http://imgur.com)
|
||
sv.language=Ytterligare språk
|
||
sv.optimize=Optimerar prestanda, detta kan ta en stund.
|
||
sv.win10=Windows 10-insticksprogram
|
||
|
||
uk.confluence=Плагін Confluence
|
||
uk.default=${default}
|
||
uk.externalcommand=Плагін запуску зовнішньої команди
|
||
uk.imgur=Плагін Imgur (див.: http://imgur.com)
|
||
uk.jira=Плагін Jira
|
||
uk.language=Додаткові мови
|
||
uk.ocr=Плагін OCR (потребує Microsoft Office Document Imaging (MODI))
|
||
uk.optimize=Оптимізація продуктивності, це може забрати час.
|
||
uk.startgreenshot=Запустити {#ExeName}
|
||
uk.startup=Запускати {#ExeName} під час запуску Windows
|
||
uk.win10=Плагін Windows 10
|
||
|
||
cn.confluence=Confluence插件
|
||
cn.default=${default}
|
||
cn.externalcommand=使用外部命令打开插件
|
||
cn.imgur=Imgur插件( (请访问: http://imgur.com))
|
||
cn.jira=Jira插件
|
||
cn.language=其它语言
|
||
cn.ocr=OCR插件(需要Microsoft Office Document Imaging (MODI)的支持)
|
||
cn.optimize=正在优化性能,这可能需要一点时间。
|
||
cn.startgreenshot=启动{#ExeName}
|
||
cn.startup=让{#ExeName}随Windows一起启动
|
||
cn.win10=Windows 10插件
|
||
|
||
[Types]
|
||
Name: "default"; Description: "{cm:default}"
|
||
Name: "full"; Description: "{code:FullInstall}"
|
||
Name: "compact"; Description: "{code:CompactInstall}"
|
||
Name: "custom"; Description: "{code:CustomInstall}"; Flags: iscustom
|
||
|
||
[Components]
|
||
Name: "greenshot"; Description: "Greenshot"; Types: default full compact custom; Flags: fixed
|
||
Name: "plugins\office"; Description: {cm:office}; Types: default full custom; Flags: disablenouninstallwarning
|
||
Name: "plugins\ocr"; Description: {cm:ocr}; Types: default full custom; Flags: disablenouninstallwarning
|
||
Name: "plugins\jira"; Description: {cm:jira}; Types: full custom; Flags: disablenouninstallwarning; Check: hasDotNet45OrHigher()
|
||
Name: "plugins\imgur"; Description: {cm:imgur}; Types: default full custom; Flags: disablenouninstallwarning
|
||
Name: "plugins\confluence"; Description: {cm:confluence}; Types: full custom; Flags: disablenouninstallwarning; Check: hasDotNet35FullOrHigher()
|
||
Name: "plugins\externalcommand"; Description: {cm:externalcommand}; Types: default full custom; Flags: disablenouninstallwarning
|
||
;Name: "plugins\networkimport"; Description: "Network Import Plugin"; Types: full
|
||
Name: "plugins\box"; Description: "Box Plugin"; Types: full custom; Flags: disablenouninstallwarning; Check: hasDotNet35FullOrHigher()
|
||
Name: "plugins\dropbox"; Description: "Dropbox Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||
Name: "plugins\flickr"; Description: "Flickr Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||
Name: "plugins\picasa"; Description: "Picasa Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||
Name: "plugins\photobucket"; Description: "Photobucket Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||
;Name: "plugins\win10"; Description: "Windows 10 Plugin"; Types: default full custom; Flags: disablenouninstallwarning; Check: IsWindows10OrNewer()
|
||
Name: "languages"; Description: {cm:language}; Types: full custom; Flags: disablenouninstallwarning
|
||
Name: "languages\arSY"; Description: "العربية"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('d')
|
||
Name: "languages\caCA"; Description: "Català"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\csCZ"; Description: "Ceština"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\daDK"; Description: "Dansk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\dexfranconia"; Description: "Frängisch (Deutsch)"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\elGR"; Description: "ελληνικά"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('4')
|
||
Name: "languages\esES"; Description: "Español"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\etEE"; Description: "Eesti"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||
Name: "languages\faIR"; Description: "پارسی"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('d')
|
||
Name: "languages\fiFI"; Description: "Suomi"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\frFR"; Description: "Français"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\frQC"; Description: "Français - Québec"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\heIL"; Description: "עִבְרִית"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('c')
|
||
Name: "languages\huHU"; Description: "Magyar"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||
Name: "languages\idID"; Description: "Bahasa Indonesia"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\itIT"; Description: "Italiano"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\jaJP"; Description: "日本語"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('7')
|
||
Name: "languages\koKR"; Description: "한국의"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('8')
|
||
Name: "languages\ltLT"; Description: "Lietuvių"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('3')
|
||
Name: "languages\lvLV"; Description: "Latviski"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('3')
|
||
Name: "languages\nnNO"; Description: "Nynorsk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\plPL"; Description: "Polski"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||
Name: "languages\ptBR"; Description: "Português do Brasil"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\ptPT"; Description: "Português de Portugal"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\ruRU"; Description: "Pусский"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
|
||
Name: "languages\roRO"; Description: "Română"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||
Name: "languages\skSK"; Description: "Slovenčina"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||
Name: "languages\slSI"; Description: "Slovenščina"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||
Name: "languages\srRS"; Description: "Српски"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
|
||
Name: "languages\svSE"; Description: "Svenska"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||
Name: "languages\trTR"; Description: "Türk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('6')
|
||
Name: "languages\ukUA"; Description: "Українська"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
|
||
Name: "languages\viVN"; Description: "Việt"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('e')
|
||
Name: "languages\zhCN"; Description: "简体中文"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('a')
|
||
Name: "languages\zhTW"; Description: "繁體中文"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('9')
|
||
[Code]
|
||
// Do we have a regular user trying to install this?
|
||
function IsRegularUser(): Boolean;
|
||
begin
|
||
Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
|
||
end;
|
||
|
||
// The following code is used to select the installation path, this is localappdata if non poweruser
|
||
function DefDirRoot(Param: String): String;
|
||
begin
|
||
if IsRegularUser then
|
||
Result := ExpandConstant('{localappdata}')
|
||
else
|
||
Result := ExpandConstant('{pf}')
|
||
end;
|
||
|
||
|
||
function FullInstall(Param : String) : String;
|
||
begin
|
||
result := SetupMessage(msgFullInstallation);
|
||
end;
|
||
|
||
function CustomInstall(Param : String) : String;
|
||
begin
|
||
result := SetupMessage(msgCustomInstallation);
|
||
end;
|
||
|
||
function CompactInstall(Param : String) : String;
|
||
begin
|
||
result := SetupMessage(msgCompactInstallation);
|
||
end;
|
||
/////////////////////////////////////////////////////////////////////
|
||
// The following uninstall code was found at:
|
||
// http://stackoverflow.com/questions/2000296/innosetup-how-to-automatically-uninstall-previous-installed-version
|
||
// and than modified to work in a 32/64 bit environment
|
||
/////////////////////////////////////////////////////////////////////
|
||
function GetUninstallStrings(): array of String;
|
||
var
|
||
sUnInstPath: String;
|
||
sUnInstallString: String;
|
||
asUninstallStrings : array of String;
|
||
index : Integer;
|
||
begin
|
||
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
|
||
sUnInstallString := '';
|
||
index := 0;
|
||
|
||
// Retrieve uninstall string from HKLM32 or HKCU32
|
||
if RegQueryStringValue(HKLM32, sUnInstPath, 'UninstallString', sUnInstallString) then
|
||
begin
|
||
SetArrayLength(asUninstallStrings, index + 1);
|
||
asUninstallStrings[index] := sUnInstallString;
|
||
index := index +1;
|
||
end;
|
||
|
||
if RegQueryStringValue(HKCU32, sUnInstPath, 'UninstallString', sUnInstallString) then
|
||
begin
|
||
SetArrayLength(asUninstallStrings, index + 1);
|
||
asUninstallStrings[index] := sUnInstallString;
|
||
index := index +1;
|
||
end;
|
||
|
||
// Only for Windows with 64 bit support: Retrieve uninstall string from HKLM64 or HKCU64
|
||
if IsWin64 then
|
||
begin
|
||
if RegQueryStringValue(HKLM64, sUnInstPath, 'UninstallString', sUnInstallString) then
|
||
begin
|
||
SetArrayLength(asUninstallStrings, index + 1);
|
||
asUninstallStrings[index] := sUnInstallString;
|
||
index := index +1;
|
||
end;
|
||
|
||
if RegQueryStringValue(HKCU64, sUnInstPath, 'UninstallString', sUnInstallString) then
|
||
begin
|
||
SetArrayLength(asUninstallStrings, index + 1);
|
||
asUninstallStrings[index] := sUnInstallString;
|
||
index := index +1;
|
||
end;
|
||
end;
|
||
Result := asUninstallStrings;
|
||
end;
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
procedure UnInstallOldVersions();
|
||
var
|
||
sUnInstallString: String;
|
||
index: Integer;
|
||
isUninstallMade: Boolean;
|
||
iResultCode : Integer;
|
||
asUninstallStrings : array of String;
|
||
begin
|
||
isUninstallMade := false;
|
||
asUninstallStrings := GetUninstallStrings();
|
||
for index := 0 to (GetArrayLength(asUninstallStrings) -1) do
|
||
begin
|
||
sUnInstallString := RemoveQuotes(asUninstallStrings[index]);
|
||
if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
|
||
isUninstallMade := true;
|
||
end;
|
||
|
||
// Wait a few seconds to prevent installation issues, otherwise files are removed in one process while the other tries to link to them
|
||
if (isUninstallMade) then
|
||
Sleep(2000);
|
||
end;
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
procedure CurStepChanged(CurStep: TSetupStep);
|
||
begin
|
||
if (CurStep=ssInstall) then
|
||
begin
|
||
UnInstallOldVersions();
|
||
end;
|
||
end;
|
||
/////////////////////////////////////////////////////////////////////
|
||
// End of unstall code
|
||
/////////////////////////////////////////////////////////////////////
|
||
|
||
// Build a list of greenshot parameters from the supplied installer parameters
|
||
function GetParamsForGS(argument: String): String;
|
||
var
|
||
i: Integer;
|
||
parametersString: String;
|
||
currentParameter: String;
|
||
foundStart: Boolean;
|
||
foundNoRun: Boolean;
|
||
foundLanguage: Boolean;
|
||
begin
|
||
foundNoRun := false;
|
||
foundLanguage := false;
|
||
foundStart := false;
|
||
for i:= 0 to ParamCount() do begin
|
||
currentParameter := ParamStr(i);
|
||
|
||
// check if norun is supplied
|
||
if Lowercase(currentParameter) = '/norun' then begin
|
||
foundNoRun := true;
|
||
continue;
|
||
end;
|
||
|
||
if foundStart then begin
|
||
parametersString := parametersString + ' ' + currentParameter;
|
||
foundStart := false;
|
||
end
|
||
else begin
|
||
if Lowercase(currentParameter) = '/language' then begin
|
||
foundStart := true;
|
||
foundLanguage := true;
|
||
parametersString := parametersString + ' ' + currentParameter;
|
||
end;
|
||
end;
|
||
end;
|
||
if not foundLanguage then begin
|
||
parametersString := parametersString + ' /language ' + ExpandConstant('{language}');
|
||
end;
|
||
if foundNoRun then begin
|
||
parametersString := parametersString + ' /norun';
|
||
end;
|
||
// For debugging comment out the following
|
||
//MsgBox(parametersString, mbInformation, MB_OK);
|
||
|
||
Result := parametersString;
|
||
end;
|
||
|
||
// Check if language group is installed
|
||
function hasLanguageGroup(argument: String): Boolean;
|
||
var
|
||
keyValue: String;
|
||
returnValue: Boolean;
|
||
begin
|
||
returnValue := true;
|
||
if (RegQueryStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Nls\Language Groups', argument, keyValue)) then begin
|
||
if Length(keyValue) = 0 then begin
|
||
returnValue := false;
|
||
end;
|
||
end;
|
||
Result := returnValue;
|
||
end;
|
||
|
||
function hasDotNet() : boolean;
|
||
begin
|
||
// .NET 4.5 = 4.0 full (with a "Release" key, but this is not interresting!)
|
||
Result := netfxinstalled(NetFX20, '') or netfxinstalled(NetFX30, '') or netfxinstalled(NetFX35, '') or netfxinstalled(NetFX40Client, '') or netfxinstalled(NetFX40Full, '');
|
||
end;
|
||
|
||
function hasDotNet35FullOrHigher() : boolean;
|
||
begin
|
||
Result := netfxinstalled(NetFX35, '') or netfxinstalled(NetFX40Full, '');
|
||
end;
|
||
|
||
function hasDotNet45OrHigher() : boolean;
|
||
begin
|
||
Result := netfxinstalled(NetFX4x, '');
|
||
end;
|
||
|
||
function getNGENPath(argument: String) : String;
|
||
var
|
||
installPath: string;
|
||
begin
|
||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'InstallPath', installPath) then begin
|
||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client', 'InstallPath', installPath) then begin
|
||
// 3.5 doesn't have NGEN and is using the .net 2.0 installation
|
||
installPath := ExpandConstant('{dotnet20}');
|
||
end;
|
||
end;
|
||
Result := installPath;
|
||
end;
|
||
|
||
// Initialize the setup
|
||
function InitializeSetup(): Boolean;
|
||
begin
|
||
// Check for .NET and install 3.5 if we don't have it
|
||
if not hasDotNet() then
|
||
begin
|
||
// Enhance installer, if needed, otherwise .NET installations won't work
|
||
msi20('2.0');
|
||
msi31('3.0');
|
||
|
||
//install .net 3.5
|
||
dotnetfx35sp1();
|
||
end;
|
||
Result := true;
|
||
end;
|
||
|
||
function IsWindowsVersionOrNewer(Major, Minor: Integer): Boolean;
|
||
var
|
||
Version: TWindowsVersion;
|
||
begin
|
||
GetWindowsVersionEx(Version);
|
||
Result :=
|
||
(Version.Major > Major) or
|
||
((Version.Major = Major) and (Version.Minor >= Minor));
|
||
end;
|
||
|
||
function IsWindows10OrNewer: Boolean;
|
||
begin
|
||
Result := IsWindowsVersionOrNewer(10, 0);
|
||
end;
|
||
[Run]
|
||
Filename: "{code:getNGENPath}\ngen.exe"; Parameters: "install ""{app}\{#ExeName}.exe"""; StatusMsg: "{cm:optimize}"; Flags: runhidden runasoriginaluser
|
||
Filename: "{code:getNGENPath}\ngen.exe"; Parameters: "install ""{app}\GreenshotPlugin.dll"""; StatusMsg: "{cm:optimize}"; Flags: runhidden runasoriginaluser
|
||
Filename: "{app}\{#ExeName}.exe"; Description: "{cm:startgreenshot}"; Parameters: "{code:GetParamsForGS}"; WorkingDir: "{app}"; Flags: nowait postinstall runasoriginaluser
|
||
Filename: "http://getgreenshot.org/thank-you/?language={language}&version={#Version}"; Flags: shellexec runasoriginaluser
|
||
|
||
[InstallDelete]
|
||
Name: {app}; Type: dirifempty;
|
||
|
||
[UninstallRun]
|
||
Filename: "{code:GetNGENPath}\ngen.exe"; Parameters: "uninstall ""{app}\{#ExeName}.exe"""; StatusMsg: "Cleanup"; Flags: runhidden
|
||
Filename: "{code:GetNGENPath}\ngen.exe"; Parameters: "uninstall ""{app}\GreenshotPlugin.dll"""; StatusMsg: "Cleanup"; Flags: runhidden
|