added psvince to check whether Subtitle Edit is running before installing/uninstalling since Nikse removed the mutex

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@79 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
XhmikosR 2010-10-25 12:37:00 +00:00
parent 6a3cc5d0bd
commit 3dfc6135bf
3 changed files with 48 additions and 9 deletions

View File

@ -24,6 +24,7 @@
;English ;English
en.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running! en.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running!
en.msg_AppIsRunning=Subtitle Edit is running! Please close it before proceeding.
en.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now? en.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now?
en.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them. en.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them.
en.run_VisitWebsite=Visit Subtitle Edit's Website en.run_VisitWebsite=Visit Subtitle Edit's Website
@ -36,6 +37,7 @@ en.tsk_ResetSettings=Reset Subtitle Edit's settings
dk.msg_SetupIsRunningWarning=Subtitle Edit Setup kører allerede! dk.msg_SetupIsRunningWarning=Subtitle Edit Setup kører allerede!
dk.msg_AppIsRunning=Subtitle Edit is running! Please close it before proceeding.
dk.msg_AskToDownNET=Subtitle Edit kræver .NET Framework 2.0. Download and installer .NET Framework og kør setup igen. %n%nVil du downloade .NET Framework 2.0 nu? dk.msg_AskToDownNET=Subtitle Edit kræver .NET Framework 2.0. Download and installer .NET Framework og kør setup igen. %n%nVil du downloade .NET Framework 2.0 nu?
dk.msg_DeleteSettings=Vil du også slette Subtitle Edit's indstillinger og evt. ændringer i ordlister? %n%nHvis du vil geninstallere Subtitle Edit senere kan du beholde disse indstillinger. dk.msg_DeleteSettings=Vil du også slette Subtitle Edit's indstillinger og evt. ændringer i ordlister? %n%nHvis du vil geninstallere Subtitle Edit senere kan du beholde disse indstillinger.
dk.run_VisitWebsite=Besøg Subtitle Edits Website dk.run_VisitWebsite=Besøg Subtitle Edits Website
@ -48,6 +50,7 @@ dk.tsk_ResetSettings=Nulstil Subtitle Edit indstillinger
es.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running! es.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running!
es.msg_AppIsRunning=Subtitle Edit is running! Please close it before proceeding.
es.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now? es.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now?
es.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them. es.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them.
es.run_VisitWebsite=Visit Subtitle Edit's Website es.run_VisitWebsite=Visit Subtitle Edit's Website
@ -60,6 +63,7 @@ es.tsk_ResetSettings=Reset Subtitle Edit's settings
fr.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running! fr.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running!
fr.msg_AppIsRunning=Subtitle Edit is running! Please close it before proceeding.
fr.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now? fr.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now?
fr.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them. fr.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them.
fr.run_VisitWebsite=Visit Subtitle Edit's Website fr.run_VisitWebsite=Visit Subtitle Edit's Website
@ -72,6 +76,7 @@ fr.tsk_ResetSettings=Reset Subtitle Edit's settings
it.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running! it.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running!
it.msg_AppIsRunning=Subtitle Edit is running! Please close it before proceeding.
it.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now? it.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now?
it.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them. it.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them.
it.run_VisitWebsite=Visit Subtitle Edit's Website it.run_VisitWebsite=Visit Subtitle Edit's Website
@ -84,6 +89,7 @@ it.tsk_ResetSettings=Reset Subtitle Edit's settings
nl.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running! nl.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running!
nl.msg_AppIsRunning=Subtitle Edit is running! Please close it before proceeding.
nl.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now? nl.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now?
nl.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them. nl.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them.
nl.run_VisitWebsite=Visit Subtitle Edit's Website nl.run_VisitWebsite=Visit Subtitle Edit's Website
@ -96,6 +102,7 @@ nl.tsk_ResetSettings=Reset Subtitle Edit's settings
pl.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running! pl.msg_SetupIsRunningWarning=Subtitle Edit Setup is already running!
pl.msg_AppIsRunning=Subtitle Edit is running! Please close it before proceeding.
pl.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now? pl.msg_AskToDownNET=Subtitle Edit requires the .NET Framework 2.0. Please download and install the .NET Framework and run setup again. %n%nDo you want to download the .NET Framework 2.0 now?
pl.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them. pl.msg_DeleteSettings=Do you also want to delete Subtitle Edit's settings and any custom changes you made in the dictionaries? %n%nIf you plan on reinstalling Subtitle Edit you do not have to delete them.
pl.run_VisitWebsite=Visit Subtitle Edit's Website pl.run_VisitWebsite=Visit Subtitle Edit's Website
@ -107,6 +114,7 @@ pl.tsk_Other=Other:
pl.tsk_ResetSettings=Reset Subtitle Edit's settings pl.tsk_ResetSettings=Reset Subtitle Edit's settings
ro.msg_SetupIsRunningWarning=Instalarea programului Subtitle Edit se efectuează deja! ro.msg_SetupIsRunningWarning=Instalarea programului Subtitle Edit se efectuează deja!
ro.msg_AppIsRunning=Subtitle Edit is running! Please close it before proceeding.
ro.msg_AskToDownNET=Subtitle Edit necesită .NET Framework 2.0. Vă rog să descărcaţi şi să instalaţi .NET Framework şi apoi reinstalaţi. %n%nVreţi să descărcaţi acum .NET Framework 2.0? ro.msg_AskToDownNET=Subtitle Edit necesită .NET Framework 2.0. Vă rog să descărcaţi şi să instalaţi .NET Framework şi apoi reinstalaţi. %n%nVreţi să descărcaţi acum .NET Framework 2.0?
ro.msg_DeleteSettings=Vreţi de asemenea să ştergeţi setările şi personalizările făcute în dicţionare? %n%nDacă aveţi de gând să reinstalaţi Subtitle Edit, nu este nevoie să le ştergeţi. ro.msg_DeleteSettings=Vreţi de asemenea să ştergeţi setările şi personalizările făcute în dicţionare? %n%nDacă aveţi de gând să reinstalaţi Subtitle Edit, nu este nevoie să le ştergeţi.
ro.run_VisitWebsite=Vizitaţi pagina Web a programului Subtitle Edit ro.run_VisitWebsite=Vizitaţi pagina Web a programului Subtitle Edit

View File

@ -21,7 +21,7 @@
; Inno Setup QuickStart Pack Unicode v5.3.11(+): http://www.jrsoftware.org/isdl.php#qsp ; Inno Setup QuickStart Pack Unicode v5.3.11(+): http://www.jrsoftware.org/isdl.php#qsp
#define installer_build_number "04" #define installer_build_number "05"
#define VerMajor #define VerMajor
#define VerMinor #define VerMinor
@ -113,6 +113,7 @@ Name: reset_settings; Description: {cm:tsk_ResetSettings}; GroupDescription: {cm
[Files] [Files]
Source: psvince.dll; DestDir: {app}; Flags: ignoreversion
Source: ..\src\Changelog.txt; DestDir: {app}; Flags: ignoreversion Source: ..\src\Changelog.txt; DestDir: {app}; Flags: ignoreversion
Source: ..\src\gpl.txt; DestDir: {app}; Flags: ignoreversion Source: ..\src\gpl.txt; DestDir: {app}; Flags: ignoreversion
Source: ..\src\Bin\Release\Hunspellx86.dll; DestDir: {app}; Flags: ignoreversion Source: ..\src\Bin\Release\Hunspellx86.dll; DestDir: {app}; Flags: ignoreversion
@ -187,6 +188,15 @@ var
is_update: Boolean; is_update: Boolean;
// General functions
function IsModuleLoaded(modulename: AnsiString ): Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall setuponly';
function IsModuleLoadedU(modulename: AnsiString ): Boolean;
external 'IsModuleLoaded@{app}\psvince.dll stdcall uninstallonly';
// Check if Subtitle Edit's settings exist // Check if Subtitle Edit's settings exist
function SettingsExistCheck(): Boolean; function SettingsExistCheck(): Boolean;
begin begin
@ -264,11 +274,18 @@ begin
// Create a mutex for the installer and if it's already running then expose a message and stop installation // Create a mutex for the installer and if it's already running then expose a message and stop installation
if CheckForMutexes(installer_mutex_name) then begin if CheckForMutexes(installer_mutex_name) then begin
if not WizardSilent() then if not WizardSilent() then
MsgBox(ExpandConstant('{cm:msg_SetupIsRunningWarning}'), mbCriticalError, MB_OK); MsgBox(ExpandConstant('{cm:msg_SetupIsRunningWarning}'), mbError, MB_OK);
exit; exit;
end; end;
CreateMutex(installer_mutex_name); CreateMutex(installer_mutex_name);
if IsModuleLoaded( 'SubtitleEdit.exe' ) then begin
MsgBox(ExpandConstant('{cm:msg_AppIsRunning}'), mbError, MB_OK );
Result := False;
Abort;
end else
Result := True;
// Check if .NET Framework 2.0 is installed and if not offer to download it // Check if .NET Framework 2.0 is installed and if not offer to download it
try try
ExpandConstant('{dotnet20}'); ExpandConstant('{dotnet20}');
@ -293,11 +310,25 @@ end;
function InitializeUninstall(): Boolean; function InitializeUninstall(): Boolean;
begin begin
Result := True; // Check if app is running during uninstallation
if CheckForMutexes(installer_mutex_name) then begin if IsModuleLoadedU( 'SubtitleEdit.exe' ) then begin
if not WizardSilent() then MsgBox(ExpandConstant('{cm:msg_AppIsRunning}'), mbError, MB_OK );
MsgBox(ExpandConstant('{cm:msg_SetupIsRunningWarning}'), mbCriticalError, MB_OK); Result := False;
exit; end
end; else Result := True;
CreateMutex(installer_mutex_name);
if NOT IsModuleLoadedU( 'SubtitleEdit.exe' ) then begin
Result := True;
if CheckForMutexes(installer_mutex_name) then begin
if not WizardSilent() then
MsgBox(ExpandConstant('{cm:msg_SetupIsRunningWarning}'), mbError, MB_OK);
Result := False;
end
else begin
CreateMutex(installer_mutex_name);
end;
end;
// Unload the psvince.dll in order to be uninstalled
UnloadDLL(ExpandConstant('{app}\psvince.dll'));
end; end;

BIN
InnoSetupScript/psvince.dll Normal file

Binary file not shown.