579 lines
36 KiB
Plaintext
579 lines
36 KiB
Plaintext
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
; File: LuaForWindows.iss
|
|
; Author: Ryan Pusztai <rpusztai@gmail.com>
|
|
; Date: 05/13/2008
|
|
; License:
|
|
; Copyright (C) 2008-2015 Ryan Pusztai.
|
|
;
|
|
; Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
; of this software and associated documentation files (the "Software"), to deal
|
|
; in the Software without restriction, including without limitation the rights
|
|
; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
; copies of the Software, and to permit persons to whom the Software is
|
|
; furnished to do so, subject to the following conditions:
|
|
;
|
|
; The above copyright notice and this permission notice shall be included in
|
|
; all copies or substantial portions of the Software.
|
|
;
|
|
; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
; THE SOFTWARE.
|
|
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
; -- General Installer configuration
|
|
#define MyAppVer "5.1.5.52"
|
|
#define MyAppDisplayVer "5.1.5-52"
|
|
#define MyAppName "Lua"
|
|
#define MyAppDisplayName "Lua for Windows"
|
|
#define MyAppPublisher "The Lua for Windows Project and Lua and Tecgraf, PUC-Rio"
|
|
#define MyAppURL "http://github.com/rjpcomputing/luaforwindows"
|
|
#define MyAppExeName "lua.exe"
|
|
#define AppMinVer "5.1.3.46"
|
|
|
|
; -- Dependancy handling configuration
|
|
; Comment out the #define DOWNLOAD_FILES if you want to build the
|
|
; dependencies into the installer.
|
|
;#define DOWNLOAD_FILES
|
|
#define vcRedistURL "http://github.com/rjpcomputing/luaforwindows/releases/download/vc-runtime/vcredist_x86.4053.exe"
|
|
|
|
; -- Pre-Build Step.
|
|
;#expr Exec( "create_install_files_pkg.bat", NULL, ".", 1, SW_SHOWMINIMIZED )
|
|
|
|
[Setup]
|
|
AppName={#MyAppName}
|
|
AppVerName={#MyAppDisplayName} {#MyAppDisplayVer}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL={#MyAppURL}
|
|
AppSupportURL={#MyAppURL}
|
|
AppUpdatesURL={#MyAppURL}
|
|
DefaultDirName={pf}\{#MyAppName}\5.1
|
|
DisableDirPage=false
|
|
DefaultGroupName={#MyAppName}
|
|
DisableProgramGroupPage=false
|
|
AllowNoIcons=true
|
|
OutputBaseFilename=LuaForWindows_v{#MyAppDisplayVer}
|
|
Compression=lzma/ultra
|
|
SolidCompression=true
|
|
InternalCompressLevel=ultra
|
|
OutputDir=.
|
|
ShowLanguageDialog=yes
|
|
AppVersion={#MyAppVer}
|
|
WizardImageFile=compiler:WizModernImage-IS.bmp
|
|
WizardSmallImageFile=compiler:WizModernSmallImage-IS.bmp
|
|
VersionInfoVersion={#MyAppVer}
|
|
VersionInfoDescription={#MyAppName}
|
|
ChangesAssociations=true
|
|
ChangesEnvironment=true
|
|
LicenseFile=files/LICENSE.txt
|
|
MinVersion=0,5.0.2195
|
|
PrivilegesRequired=none
|
|
UninstallFilesDir={app}\uninstall
|
|
UninstallDisplayIcon={app}\lua.exe
|
|
|
|
[Messages]
|
|
BeveledLabel={#MyAppDisplayName} v{#MyAppDisplayVer}
|
|
|
|
[Tasks]
|
|
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
|
|
Name: blackscheme; Description: Use a black background syntax highlight theme for script editor; GroupDescription: Additional schemes:; Flags: unchecked
|
|
|
|
[Files]
|
|
; -- Main Lua files.
|
|
Source: files\bin2c5.1.exe; DestDir: {app}; DestName: bin2c.exe; Flags: ignoreversion
|
|
Source: files\LICENSE.txt; DestDir: {app}; Flags: ignoreversion
|
|
Source: files\lua5.1.dll; DestDir: {app}; Flags: ignoreversion
|
|
Source: files\lua5.1.exe; DestDir: {app}; DestName: lua.exe; Flags: ignoreversion
|
|
Source: files\lua51.dll; DestDir: {app}; Flags: ignoreversion
|
|
Source: files\luac5.1.exe; DestDir: {app}; DestName: luac.exe; Flags: ignoreversion
|
|
Source: files\wlua5.1.exe; DestDir: {app}; DestName: wlua.exe; Flags: ignoreversion
|
|
Source: files\metalua.bat; DestDir: {app}; Flags: ignoreversion
|
|
Source: files\luadoc_start.bat; DestDir: {app}; Flags: ignoreversion
|
|
Source: files\lExecutor.wlua; DestDir: {app}; Flags: ignoreversion
|
|
Source: files\ilua.cmd; DestDir: {app}; Flags: ignoreversion
|
|
; -- LuaRocks files
|
|
Source: files\luarocks.bat; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\luarocks-admin.bat; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\7z.dll; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\7z.exe; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\luarocks.lua; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\luarocks_config.lua; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\luarocks-admin.lua; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\rclauncher.o; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\rclauncher.obj; DestDir: {app}; Flags: ignoreversion; Components: luarocks
|
|
Source: files\rocks\*; DestDir: {app}\rocks; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: luarocks
|
|
Source: files\lua\luarocks\*; DestDir: {app}\lua\luarocks; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: luarocks
|
|
; -- Other files and modules.
|
|
Source: files\clibs\*; DestDir: {app}\clibs; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: modules
|
|
Source: files\docs\*; DestDir: {app}\docs; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: docs
|
|
Source: files\examples\*; DestDir: {app}\examples; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: examples
|
|
Source: files\include\*; DestDir: {app}\include; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: moduledevel
|
|
Source: files\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: moduledevel
|
|
Source: files\lua\*; DestDir: {app}\lua; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\, luarocks\*; Components: modules
|
|
Source: files\utils\*; DestDir: {app}\utils; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: modules
|
|
Source: support\Microsoft.VC80.CRT.SP1\*; DestDir: {app}\Microsoft.VC80.CRT; Flags: ignoreversion; Excludes: .git\; Check: IsNonAdminLoggedOn
|
|
Source: support\Microsoft.VC80.CRT.SP1\*; DestDir: {app}\clibs\Microsoft.VC80.CRT; Flags: ignoreversion; Excludes: .git\; Components: modules; Check: IsNonAdminLoggedOn
|
|
Source: support\Microsoft.VC80.CRT\*; DestDir: {app}\clibs\alien\Microsoft.VC80.CRT; Flags: ignoreversion; Excludes: .git\; Components: modules; Check: IsNonAdminLoggedOn
|
|
Source: support\Microsoft.VC80.CRT.SP1\*; DestDir: {app}\clibs\md5\Microsoft.VC80.CRT; Flags: ignoreversion; Excludes: .git\; Components: modules; Check: IsNonAdminLoggedOn
|
|
Source: support\Microsoft.VC80.CRT.SP1\*; DestDir: {app}\clibs\mime\Microsoft.VC80.CRT; Flags: ignoreversion; Excludes: .git\; Components: modules; Check: IsNonAdminLoggedOn
|
|
Source: support\Microsoft.VC80.CRT.SP1\*; DestDir: {app}\clibs\socket\Microsoft.VC80.CRT; Flags: ignoreversion; Excludes: .git\; Components: modules; Check: IsNonAdminLoggedOn
|
|
Source: support\*; DestDir: {app}\install\support; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\
|
|
#ifdef DOWNLOAD_FILES
|
|
Source: support\isxdl.dll; DestDir: {tmp}; Flags: dontcopy
|
|
Source: {src}\vcredist_x86.exe; DestDir: {app}\install\support; Flags: ignoreversion external; Check: ShouldCopyVc8Runtime
|
|
#else
|
|
Source: vcredist_x86.exe; DestDir: {app}\install\support; Flags: ignoreversion; Excludes: .git\
|
|
#endif
|
|
Source: LuaForWindows.iss; DestDir: {app}\install; Flags: ignoreversion; Excludes: .git\
|
|
Source: changes.txt; DestDir: {app}; Flags: ignoreversion; Excludes: .git\
|
|
Source: todo.txt; DestDir: {app}; Flags: ignoreversion; Excludes: .git\
|
|
|
|
; -- SciTE files
|
|
Source: SciTE\*; DestDir: {app}\SciTE; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .git\; Components: editors/scite
|
|
Source: support\SciTEGlobal.black.properties; DestDir: {app}\SciTE; DestName: SciTEGlobal.properties; Tasks: blackscheme; Components: editors/scite; Flags: ignoreversion
|
|
|
|
[InstallDelete]
|
|
Name: {app}\lua\pl; Type: filesandordirs
|
|
Name: {app}\docs\bitlib; Type: filesandordirs
|
|
Name: {app}\docs\penlight; Type: filesandordirs
|
|
Name: {app}\examples\bitlib; Type: filesandordirs
|
|
Name: {app}\examples\penlight; Type: filesandordirs
|
|
Name: {app}\examples\iup\tree_set_attrs.lua; Type: filesandordirs
|
|
; Cleanup the old file.
|
|
Name: {app}\install\Lua.iss; Type: files
|
|
|
|
[Icons]
|
|
Name: {group}\Lua (Command Line); WorkingDir: {app}; Filename: {app}\lua.exe; Components: main
|
|
Name: {group}\iLua (Friendly Lua Command Line); WorkingDir: {app}; Filename: {app}\ilua.cmd; Components: main
|
|
Name: {group}\lExecutor; WorkingDir: {app}; Filename: {app}\lExecutor.wlua; Components: main
|
|
Name: {group}\LuaForWindows Documentation; Filename: {app}\docs\luaforwindows.html; Components: main
|
|
Name: {group}\QuickLuaTour; Filename: {app}\Examples\quickluatour.lua; Components: examples
|
|
Name: {group}\{#MyAppName} Examples; Filename: {app}\Examples; Components: examples
|
|
Name: {group}\Documentation\{#MyAppName} Module Documentation; Filename: {app}\docs; Components: docs
|
|
Name: {group}\Documentation\Lua Quick Reference; Filename: {app}\docs\luarefv51.html; Components: docs
|
|
Name: {group}\Documentation\Lua 5.1 Reference Manual; Filename: {app}\docs\lua5_1_4_Docs.chm; Components: docs
|
|
Name: {group}\Documentation\lExecutor Documentation; Filename: {app}\docs\lexecutor\lExecutor.html; Components: docs
|
|
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
|
|
Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
|
|
; -- SciTE icons.
|
|
Name: {group}\SciTE; Filename: {app}\SciTE\scite.exe; Components: editors/scite
|
|
Name: {commondesktop}\SciTE; Filename: {app}\SciTE\scite.exe; Tasks: desktopicon; Components: editors/scite
|
|
|
|
[Run]
|
|
Filename: {app}\Examples\quickluatour.lua; Description: Run a simple introduction to Lua.; WorkingDir: {app}; Flags: nowait postinstall skipifsilent unchecked shellexec; Components: examples
|
|
Filename: {app}/install/support/vcredist_x86.exe; Parameters: "/q:a /c:""VCREDI~3.EXE /q:a /c:""""msiexec /i vcredist.msi /qn"""" """; StatusMsg: Installing Microsoft Visual C++ 2005 SP1 Redistributable...; Check: ShouldInstallVc8Runtime
|
|
|
|
[INI]
|
|
Filename: {group}\Documentation\{#MyAppName} On The Web.url; Section: InternetShortcut; Key: URL; String: http://lua.org/
|
|
Filename: {group}\Documentation\Lua PiL Book.url; Section: InternetShortcut; Key: URL; String: http://www.lua.org/pil/; Components: docs
|
|
Filename: {app}\docs\Lua PiL Book.url; Section: InternetShortcut; Key: URL; String: http://www.lua.org/pil/; Components: docs
|
|
|
|
[UninstallDelete]
|
|
Type: files; Name: {app}\{#MyAppName}.url
|
|
Type: files; Name: {app}\docs\Lua PiL Book.url
|
|
Type: files; Name: {app}\docs\lua5_1_3_Docs.chm
|
|
Type: filesandordirs; Name: {group}
|
|
|
|
[Components]
|
|
Name: main; Description: Lua (required); Flags: fixed dontinheritcheck checkablealone; Types: full compact custom
|
|
Name: editors; Description: Script Editors; Flags: dontinheritcheck disablenouninstallwarning; Types: full custom
|
|
Name: editors/scite; Description: SciTE (IDE with debugging); Flags: disablenouninstallwarning exclusive; Types: full custom
|
|
Name: modules; Description: Lua Modules; Flags: dontinheritcheck checkablealone disablenouninstallwarning; Types: full custom
|
|
Name: luarocks; Description: LuaRocks Module Installer (Experimental); Flags: dontinheritcheck checkablealone disablenouninstallwarning; Types: full custom
|
|
Name: moduledevel; Description: Lua Module Development files (libs and headers); Flags: dontinheritcheck checkablealone disablenouninstallwarning; Types: full custom
|
|
Name: docs; Description: Documentation; Flags: dontinheritcheck checkablealone disablenouninstallwarning; Types: full custom
|
|
Name: examples; Description: Examples; Flags: dontinheritcheck checkablealone disablenouninstallwarning; Types: full custom
|
|
|
|
[Registry]
|
|
; -- Add the Lua file associations.
|
|
Root: HKCR; SubKey: .lua; ValueType: string; ValueData: {#MyAppName}.Script; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .lua\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .lua\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: {#MyAppName}.Script\DefaultIcon; ValueType: string; ValueData: {app}\install\support\luafile.ico; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: {#MyAppName}.Script; ValueType: string; ValueData: {#MyAppName} Script File; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: {#MyAppName}.Script\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: {#MyAppName}.Script\Shell\Edit; ValueType: string; ValueData: Edit Script; Flags: uninsdeletevalue; Components: editors/scite; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: {#MyAppName}.Script\Shell\Edit\Command; ValueType: expandsz; ValueData: """{app}\SciTE\scite.exe"" ""%1"""; Flags: uninsdeletevalue; Components: editors/scite; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .wlua; ValueType: string; ValueData: w{#MyAppName}.Script; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .wlua\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .wlua\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: w{#MyAppName}.Script\DefaultIcon; ValueType: string; ValueData: {app}\install\support\luafile.ico; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: w{#MyAppName}.Script; ValueType: string; ValueData: w{#MyAppName} Script File; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: w{#MyAppName}.Script\Shell\Open\Command; ValueType: string; ValueData: """{app}\w{#MyAppExeName}"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: w{#MyAppName}.Script\Shell\Edit; ValueType: string; ValueData: Edit Script; Flags: uninsdeletevalue; Components: editors/scite; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: w{#MyAppName}.Script\Shell\Edit\Command; ValueType: expandsz; ValueData: """{app}\SciTE\scite.exe"" ""%1"""; Flags: uninsdeletevalue; Components: editors/scite; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .lexe; ValueType: string; ValueData: lExecutor.Script; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .lexe\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .lexe\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: lExecutor.Script\DefaultIcon; ValueType: string; ValueData: {app}\install\support\lexe.ico; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: lExecutor.Script; ValueType: string; ValueData: lExecutor Script File; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: lExecutor.Script\Shell\Open\Command; ValueType: string; ValueData: """{app}\w{#MyAppExeName}"" ""{app}\lExecutor.wlua"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: lExecutor.Script\Shell\Edit; ValueType: string; ValueData: Edit Script; Flags: uninsdeletevalue; Components: editors/scite; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: lExecutor.Script\Shell\Edit\Command; ValueType: expandsz; ValueData: """{app}\SciTE\scite.exe"" ""%1"""; Flags: uninsdeletevalue; Components: editors/scite; Check: IsAdminLoggedOn
|
|
;
|
|
Root: HKCR; SubKey: .luac; ValueType: string; ValueData: {#MyAppName}.Compiled; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
;Root: HKCR; SubKey: .luac\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
;Root: HKCR; SubKey: .luac\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: {#MyAppName}.Compiled\DefaultIcon; ValueType: string; ValueData: {app}\install\support\luafile3.ico; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: {#MyAppName}.Compiled; ValueType: string; ValueData: {#MyAppName} Compiled File; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: {#MyAppName}.Compiled\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .mlua; ValueType: string; ValueData: Meta{#MyAppName}.Script; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .mlua\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: .mlua\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: Meta{#MyAppName}.Script\DefaultIcon; ValueType: string; ValueData: {app}\install\support\luafile2.ico; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: Meta{#MyAppName}.Script; ValueType: string; ValueData: Meta{#MyAppName} Script File; Flags: uninsdeletekey; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: Meta{#MyAppName}.Script\Shell\Open\Command; ValueType: string; ValueData: """{app}\metalua.bat"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: Meta{#MyAppName}.Script\Shell\Edit; ValueType: string; ValueData: Edit Script; Flags: uninsdeletevalue; Components: editors/scite; Check: IsAdminLoggedOn
|
|
Root: HKCR; SubKey: Meta{#MyAppName}.Script\Shell\Edit\Command; ValueType: expandsz; ValueData: """{app}\SciTE\scite.exe"" ""%1"""; Flags: uninsdeletevalue; Components: editors/scite; Check: IsAdminLoggedOn
|
|
|
|
; -- Limited user Lua file associations.
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.lua; ValueType: string; ValueData: {#MyAppName}.Script; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.lua\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.lua\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\{#MyAppName}.Script\DefaultIcon; ValueType: string; ValueData: {app}\install\support\luafile.ico; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\{#MyAppName}.Script; ValueType: string; ValueData: {#MyAppName} Script File; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\{#MyAppName}.Script\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\{#MyAppName}.Script\Shell\Edit; ValueType: string; ValueData: Edit Script; Flags: uninsdeletevalue; Components: editors/scite; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\{#MyAppName}.Script\Shell\Edit\Command; ValueType: expandsz; ValueData: """{app}\SciTE\scite.exe"" ""%1"""; Flags: uninsdeletevalue; Components: editors/scite; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.wlua; ValueType: string; ValueData: w{#MyAppName}.Script; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.wlua\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.wlua\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\w{#MyAppName}.Script\DefaultIcon; ValueType: string; ValueData: {app}\install\support\luafile.ico; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\w{#MyAppName}.Script; ValueType: string; ValueData: w{#MyAppName} Script File; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\w{#MyAppName}.Script\Shell\Open\Command; ValueType: string; ValueData: """{app}\w{#MyAppExeName}"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\w{#MyAppName}.Script\Shell\Edit; ValueType: string; ValueData: Edit Script; Flags: uninsdeletevalue; Components: editors/scite; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\w{#MyAppName}.Script\Shell\Edit\Command; ValueType: expandsz; ValueData: """{app}\SciTE\scite.exe"" ""%1"""; Flags: uninsdeletevalue; Components: editors/scite; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.lexe; ValueType: string; ValueData: lExecutor.Script; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.lexe\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.lexe\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\lExecutor.Script\DefaultIcon; ValueType: string; ValueData: {app}\install\support\lexe.ico; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\lExecutor.Script; ValueType: string; ValueData: lExecutor Script File; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\lExecutor.Script\Shell\Open\Command; ValueType: string; ValueData: """{app}\w{#MyAppExeName}"" ""{app}\lExecutor.wlua"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\lExecutor.Script\Shell\Edit; ValueType: string; ValueData: Edit Script; Flags: uninsdeletevalue; Components: editors/scite; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\lExecutor.Script\Shell\Edit\Command; ValueType: expandsz; ValueData: """{app}\SciTE\scite.exe"" ""%1"""; Flags: uninsdeletevalue; Components: editors/scite; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.luac; ValueType: string; ValueData: {#MyAppName}.Compiled; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
;Root: HKCU; SubKey: SOFTWARE\Classes\.luac\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
;Root: HKCU; SubKey: SOFTWARE\Classes\.luac\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\{#MyAppName}.Compiled\DefaultIcon; ValueType: string; ValueData: {app}\install\support\luafile3.ico; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\{#MyAppName}.Compiled; ValueType: string; ValueData: {#MyAppName} Compiled File; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\{#MyAppName}.Compiled\Shell\Open\Command; ValueType: string; ValueData: """{app}\{#MyAppExeName}"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.mlua; ValueType: string; ValueData: Meta{#MyAppName}.Script; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.mlua\Content Type; ValueType: string; ValueData: text/plain; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\.mlua\PerceivedType; ValueType: string; ValueData: text; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\Meta{#MyAppName}.Script\DefaultIcon; ValueType: string; ValueData: {app}\install\support\luafile2.ico; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\Meta{#MyAppName}.Script; ValueType: string; ValueData: Meta{#MyAppName} Script File; Flags: uninsdeletekey; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\Meta{#MyAppName}.Script\Shell\Open\Command; ValueType: string; ValueData: """{app}\metalua.bat"" ""%1"" %*"; Flags: uninsdeletevalue; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\Meta{#MyAppName}.Script\Shell\Edit; ValueType: string; ValueData: Edit Script; Flags: uninsdeletevalue; Components: editors/scite; Check: IsNonAdminLoggedOn
|
|
Root: HKCU; SubKey: SOFTWARE\Classes\Meta{#MyAppName}.Script\Shell\Edit\Command; ValueType: expandsz; ValueData: """{app}\SciTE\scite.exe"" ""%1"""; Flags: uninsdeletevalue; Components: editors/scite; Check: IsNonAdminLoggedOn
|
|
|
|
[Code]
|
|
// -- Misc Functions
|
|
|
|
// -- Checks to see if a non-administrator is logged on.
|
|
function IsNonAdminLoggedOn(): boolean;
|
|
begin
|
|
if IsAdminLoggedOn() then begin
|
|
Result := false;
|
|
end else begin
|
|
Result := true;
|
|
end;
|
|
end;
|
|
|
|
// -- Checks to see if the VC 8.0 run-time is installed.
|
|
function IsVc8RuntimeInstalled(): boolean;
|
|
begin
|
|
Result := RegValueExists( HKLM, 'Software\Microsoft\DevDiv\VC\Servicing\8.0\RED\1033', 'Install' );
|
|
end;
|
|
|
|
// -- Checks to see if the VC 8.0 run-time is already installed and determines if it should be installed.
|
|
function ShouldInstallVc8Runtime(): boolean;
|
|
begin
|
|
if IsVc8RuntimeInstalled() then begin
|
|
// Already installed so no need to re-install.
|
|
Result := false;
|
|
end else begin
|
|
if IsAdminLoggedOn() then begin
|
|
Result := true;
|
|
end else begin
|
|
SuppressibleMsgBox( 'The Microsoft Visual C++ 2005 Redistributable doesn''t appear to be installed and requires administrator privileges.' #13 #13 'Please run "vcredist_x86.exe", as an Administrator, from' #13 ' ' + ExpandConstant( '{app}\install\support\vcredist_x86.exe' ) + #13 'after the install finishes.' #13 #13 'NOTE: Lua will have limited or no functionality, so please do this as soon as possible.' , mbInformation, MB_OK, IDOK );
|
|
Result := false;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
// -- Checks to see if the VC 8.0 run-time needs to be copied
|
|
function ShouldCopyVc8Runtime(): boolean;
|
|
begin
|
|
Result := not IsVc8RuntimeInstalled();
|
|
end;
|
|
|
|
// -- Updates specified environment variable.
|
|
procedure UpdateEnvironmentVariable( const environmentVariable: String; const stringToAdd: String );
|
|
var
|
|
value: String;
|
|
newVal: String;
|
|
idx: Integer;
|
|
|
|
begin
|
|
// Get the old value so the new value can be appended.
|
|
// Also check if you have administrative rights so that we can read
|
|
// from the right location. This is because reads are ok on a non-admin system.
|
|
if IsAdminLoggedOn() then begin
|
|
RegQueryStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', environmentVariable, value )
|
|
end else begin
|
|
// Check if the local environment already exists and grab that as a starting place.
|
|
if RegValueExists( HKCU, 'Environment', environmentVariable ) then begin
|
|
RegQueryStringValue( HKCU, 'Environment', environmentVariable, value )
|
|
end else begin
|
|
if CompareText( environmentVariable, 'PATH' ) = 0 then begin
|
|
RegQueryStringValue( HKCU, 'Environment', environmentVariable, value )
|
|
end else begin
|
|
RegQueryStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', environmentVariable, value )
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
// Only add the ';' if there is a string already.
|
|
if Length( value ) > 0 then begin
|
|
newVal := ';' + stringToAdd;
|
|
end else begin
|
|
newVal := stringToAdd
|
|
end;
|
|
|
|
// Search for the string
|
|
idx := Pos( stringToAdd, value );
|
|
if idx = 0 then begin
|
|
value := value + newVal;
|
|
if not RegWriteStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', environmentVariable, value ) then
|
|
RegWriteStringValue( HKCU, 'Environment', environmentVariable, value );
|
|
end;
|
|
end;
|
|
|
|
// -- Updates specified environment variable.
|
|
procedure RemoveEnvironmentVariable( const environmentVariable: String; const stringToRemove: String );
|
|
var
|
|
value: String;
|
|
firstVal: String;
|
|
secondVal: String;
|
|
lastChar: String;
|
|
idx: Integer;
|
|
|
|
begin
|
|
// Get the old value so the new value can be appended.
|
|
// Also check if you have administrative rights so that we can read
|
|
// from the right location. This is because reads are ok on a non-admin system.
|
|
if IsAdminLoggedOn() then begin
|
|
RegQueryStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', environmentVariable, value )
|
|
end else begin
|
|
// Check if the local environment already exists and grab that as a starting place.
|
|
if RegValueExists( HKCU, 'Environment', environmentVariable ) then begin
|
|
RegQueryStringValue( HKCU, 'Environment', environmentVariable, value )
|
|
end else begin
|
|
if CompareText( environmentVariable, 'PATH' ) = 0 then begin
|
|
RegQueryStringValue( HKCU, 'Environment', environmentVariable, value )
|
|
end else begin
|
|
RegQueryStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', environmentVariable, value )
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
// Search for the string
|
|
idx := Pos( stringToRemove, value );
|
|
if idx > 0 then begin
|
|
// get the parts of the string.
|
|
firstVal := Copy( value, 0, idx - 1 );
|
|
secondVal := Copy( value, idx + Length( stringToRemove ), Length( value ) );
|
|
|
|
// Combine the first and second values to make the new value.
|
|
value := firstVal + secondVal;
|
|
|
|
// See if the value is now empty and delete it. Else write the balance back.
|
|
if Length( value ) = 0 then begin
|
|
if not RegDeleteValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', environmentVariable ) then
|
|
RegDeleteValue( HKCU, 'Environment', environmentVariable );
|
|
end else begin
|
|
// Clean up the string a bit by removing duplicate ;.
|
|
StringChangeEx( value, ';;', ';', True );
|
|
// Check the last character for a ; and remove it.
|
|
lastChar := Copy( value, Length( value ), Length( value ) );
|
|
if lastChar = ';' then
|
|
value := Copy( value, 0, Length( value ) - 1 );
|
|
|
|
// Write the new value back.
|
|
if not RegWriteStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', environmentVariable, value ) then
|
|
RegWriteStringValue( HKCU, 'Environment', environmentVariable, value );
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
// -- Previous version and uninstalling functions
|
|
function GetPathInstalled( AppID: String ): String;
|
|
var
|
|
sPrevPath: String;
|
|
begin
|
|
sPrevPath := '';
|
|
if not RegQueryStringValue( HKLM,
|
|
'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1',
|
|
'Inno Setup: App Path', sPrevpath) then
|
|
RegQueryStringValue( HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1' ,
|
|
'Inno Setup: App Path', sPrevpath);
|
|
|
|
Result := sPrevPath;
|
|
end;
|
|
|
|
function GetPathUninstallString( AppID: String ): String;
|
|
var
|
|
sPrevPath: String;
|
|
begin
|
|
sPrevPath := '';
|
|
if not RegQueryStringValue( HKLM,
|
|
'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1',
|
|
'UninstallString', sPrevpath) then
|
|
RegQueryStringValue( HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1' ,
|
|
'UninstallString', sPrevpath);
|
|
|
|
Result := sPrevPath;
|
|
end;
|
|
|
|
function GetInstalledVersion( AppID: String ): String;
|
|
var
|
|
sPrevPath: String;
|
|
|
|
begin
|
|
sPrevPath := '';
|
|
if not RegQueryStringValue( HKLM,
|
|
'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1',
|
|
'DisplayVersion', sPrevpath) then
|
|
RegQueryStringValue( HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1' ,
|
|
'DisplayVersion', sPrevpath);
|
|
|
|
Result := sPrevPath;
|
|
end;
|
|
|
|
function InitializeSetup(): boolean;
|
|
var
|
|
ResultCode: Integer;
|
|
sVersion: String;
|
|
sUninstallEXE: String;
|
|
|
|
begin
|
|
sVersion:= GetInstalledVersion('{#MyAppName}');
|
|
sUninstallEXE:= RemoveQuotes(GetPathUninstallString('{#MyAppName}'));
|
|
|
|
// Check to make sure there is an exceptable version of LfW installed.
|
|
if Length(sVersion) = 0 then begin
|
|
result:= true;
|
|
end else begin
|
|
//MsgBox( 'Version ' + sVersion + ' found. Minversion = ' + '{#AppMinVer}', mbInformation, MB_OK );
|
|
if CompareText( sVersion, '{#AppMinVer}' ) <= 0 then begin
|
|
if FileExists( sUninstallEXE ) then begin
|
|
if WizardSilent() then begin
|
|
// Just uninstall without asking because we are in silent mode.
|
|
Exec( sUninstallEXE, '/SILENT', GetPathInstalled('{#MyAppName}'),
|
|
SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
|
|
|
|
// Make sure that Setup is visible and the foreground window
|
|
BringToFrontAndRestore;
|
|
result := true;
|
|
end else begin
|
|
// Ask if they really want to uninstall because we are in the default installer.
|
|
if SuppressibleMsgBox( 'Version ' + sVersion + ' of {#MyAppName} was detected.' #13 'It is recommended that you uninstall the old version first before continuing.' + #13 + #13 + 'Would you like to uninstall it now?', mbInformation, MB_YESNO, IDYES ) = IDYES then begin
|
|
Exec( sUninstallEXE, '/SILENT', GetPathInstalled('{#MyAppName}'),
|
|
SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
|
|
|
|
// Make sure that Setup is visible and the foreground window
|
|
BringToFrontAndRestore;
|
|
result := true;
|
|
end else begin
|
|
result := true;
|
|
end;
|
|
end;
|
|
end;
|
|
end else begin
|
|
result := true;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure CurStepChanged( CurStep: TSetupStep );
|
|
begin
|
|
if CurStep = ssPostInstall then begin
|
|
// Add the app path to the PATH environment variable.
|
|
UpdateEnvironmentVariable( 'PATH', ExpandConstant( '{app}' ) );
|
|
UpdateEnvironmentVariable( 'PATH', ExpandConstant( '{app}' ) + '\clibs' );
|
|
// Add the file extentions to the PATHEXT environment variable.
|
|
//UpdateEnvironmentVariable( 'PATHEXT', '.lua' );
|
|
UpdateEnvironmentVariable( 'PATHEXT', '.wlua' );
|
|
UpdateEnvironmentVariable( 'PATHEXT', '.lexe' );
|
|
// Add the LUA_PATH and LUA_CPATH.
|
|
UpdateEnvironmentVariable( 'LUA_PATH', ';;' + ExpandConstant( '{app}' ) + '\lua\?.luac' )
|
|
//UpdateEnvironmentVariable( 'LUA_CPATH', ';;?.dll;' + ExpandConstant( '{app}' ) + '\clibs\?.dll;' + ExpandConstant( '{app}' ) + '\clibs\loadall.dll;' + ExpandConstant( '{app}' ) + '\clibs\?51.dll' )
|
|
// Add LUA_DEV to help C module writers.
|
|
UpdateEnvironmentVariable( 'LUA_DEV', ExpandConstant( '{app}' ) )
|
|
end;
|
|
end;
|
|
|
|
procedure CurUninstallStepChanged( CurUninstallStep: TUninstallStep );
|
|
begin
|
|
if CurUninstallStep = usPostUninstall then begin
|
|
// Remove the app path to the PATH environment variable.
|
|
RemoveEnvironmentVariable( 'PATH', ExpandConstant( '{app}' ) );
|
|
RemoveEnvironmentVariable( 'PATH', ExpandConstant( '{app}' ) + '\clibs' );
|
|
// Remove the file extentions to the PATHEXT environment variable.
|
|
//RemoveEnvironmentVariable( 'PATHEXT', '.lua' );
|
|
RemoveEnvironmentVariable( 'PATHEXT', '.wlua' );
|
|
RemoveEnvironmentVariable( 'PATHEXT', '.lexe' );
|
|
// Remove the LUA_PATH and LUA_CPATH.
|
|
RemoveEnvironmentVariable( 'LUA_PATH', ';;' + ExpandConstant( '{app}' ) + '\lua\?.luac' )
|
|
//RemoveEnvironmentVariable( 'LUA_CPATH', ';;?.dll;' + ExpandConstant( '{app}' ) + '\clibs\?.dll;' + ExpandConstant( '{app}' ) + '\clibs\loadall.dll;' + ExpandConstant( '{app}' ) + '\clibs\?51.dll' )
|
|
// Remove the LUA_DEV variable.
|
|
RemoveEnvironmentVariable( 'LUA_DEV', ExpandConstant( '{app}' ) )
|
|
end;
|
|
end;
|
|
|
|
#ifdef DOWNLOAD_FILES
|
|
procedure isxdl_AddFile(URL, Filename: String);
|
|
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: String): Integer;
|
|
external 'isxdl_SetOption@files:isxdl.dll stdcall';
|
|
|
|
|
|
function NextButtonClick( CurPage: Integer ): Boolean;
|
|
var
|
|
hWnd: Integer;
|
|
downloadNeeded: Boolean;
|
|
vcRedistPath: String;
|
|
|
|
begin
|
|
downloadNeeded := false;
|
|
Result := true;
|
|
|
|
if CurPage = wpReady then begin
|
|
hWnd := StrToInt( ExpandConstant( '{wizardhwnd}' ) );
|
|
|
|
if not IsVc8RuntimeInstalled() then begin
|
|
vcRedistPath := ExpandConstant( '{src}\vcredist_x86.exe' );
|
|
if not FileExists( vcRedistPath ) then begin
|
|
isxdl_AddFile( '{#vcRedistURL}', vcRedistPath );
|
|
downloadNeeded := true;
|
|
end;
|
|
|
|
isxdl_SetOption( 'label', 'Downloading extra files' );
|
|
isxdl_SetOption( 'description', 'Please wait while Setup is downloading the Microsoft Visual C++ 2005 SP1 Redistributable to your computer.' );
|
|
if downloadNeeded then begin
|
|
if isxdl_DownloadFiles( hWnd ) = 0 then begin
|
|
Result := false;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
#endif
|
|
|
|
|