summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorglx <glx@openttd.org>2010-11-11 17:06:33 +0000
committerglx <glx@openttd.org>2010-11-11 17:06:33 +0000
commit6543339f9102212c56b30ae074b12759ecefcc96 (patch)
treeaf6aa9420ac1aab44f68339cc7c619af18e96b83
parent67d071d0338affe7b8ed565a72150ff5d7513737 (diff)
downloadopenttd-6543339f9102212c56b30ae074b12759ecefcc96.tar.xz
(svn r21146) -Fix [FS#4212]: make sure to be upgraded openttd is not running when installing (Win32)
-rw-r--r--os/windows/installer/install.nsi21
1 files changed, 20 insertions, 1 deletions
diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi
index 4e0adac1b..692970863 100644
--- a/os/windows/installer/install.nsi
+++ b/os/windows/installer/install.nsi
@@ -102,6 +102,9 @@ Page custom SelectCDEnter SelectCDExit ": TTD folder"
;--------------------------------------------------------------
; (Core) OpenTTD install section. Copies all internal game data
Section "!OpenTTD" Section1
+ ; Make sure to be upgraded OpenTTD is not running
+ Call CheckOpenTTDRunning
+
; Overwrite files by default, but don't complain on failure
SetOverwrite try
@@ -517,7 +520,6 @@ Abort:
Done:
FunctionEnd
-
;-------------------------------------------------------------------------------
; Check whether we're not running an installer for NT on 9x and vice versa
Function CheckWindowsVersion
@@ -537,6 +539,23 @@ Abort:
Done:
FunctionEnd
+;-------------------------------------------------------------------------------
+; Check whether OpenTTD is running
+Function CheckOpenTTDRunning
+ IfFileExists "$INSTDIR\openttd.exe" 0 Done
+Retry:
+ FindProcDLL::FindProc "openttd.exe"
+ Pop $R0
+ IntCmp $R0 1 0 Done
+ ClearErrors
+ Delete "$INSTDIR\openttd.exe"
+ IfErrors 0 Done
+ ClearErrors
+ MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "OpenTTD is running. Please close it and retry." IDRETRY Retry
+ Abort
+Done:
+FunctionEnd
+
Var OLDVERSION
Var UninstallString