[wpkg-users] Notepad++

Adam Thorn alt36 at cam.ac.uk
Fri Jul 6 15:16:57 CEST 2012


> >          <!-- Uninstall returns immediatly, so just wait a few seconds
> >               for it to remove before checking the status again
> >               Unfortunatly, WINDOWS has no sleep commands -->
> >          <remove cmd='%COMSPEC% /C ping -n 5 127.0.0.1 1>NUL 2>NUL' >
> >              <exit code="any" />
> >          </remove>
> > 
> > This way, the process will wait a few seconds, which should be enough
> > for the uninstall to complete before the checks run
> 
> That's right, yet the solution not only introduces an often too long delay, 
> but is also fragile as a slower system might very well need more time than 
> that.  I described a cleaner solution for most NSIS based setups a while ago 
> here:
> 
> http://bugzilla.wpkg.org/show_bug.cgi?id=241#c3

For some of my packages I make use of a brief script
(waitforprocess.cmd) which does:

@echo off

:loop
tasklist | find /I "%1" > NUL
if ERRORLEVEL 1 goto jump
goto loop
:jump

and my <remove> process goes something like

<remove cmd='%software%\wpkg\tools\waitforprocess.cmd uninstall.exe' />
<remove cmd='"%ProgramFiles%\Notepad++\uninstall.exe" /S' />
<remove cmd='%software%\wpkg\tools\waitforprocess.cmd uninstall.exe' />

i.e., wait until there are no other uninstall.exe processes running
(e.g. the user is running something of their own), then run
uninstall.exe, and wait until it finishes. 

Although it's horribly unpleasant, for some of my packages I've yet to
find a better way of handling this.

Adam




More information about the wpkg-users mailing list