Paval,
Возможно так :
Код:
!include "FileFunc.nsh"
Section
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\App1" "DisplayVersion"
MessageBox MB_OK "Версия установленной программы $R0"
${GetFileVersion} "App2.exe" $R1
MessageBox MB_OK "Версия устанавливаемой программы $R1"
;затем сравниваем значения переменных (здесь тоже могут быть варианты, в зависимости от нумерации и пр.) , и т.д.
SectionEnd
App2.exe может находиться рядом с скриптом.
(Если же инсталлятор устанавливаемой программы, бестолковый, т.е. версия не указана, то придётся предварительно распаковать эту прогу в Temp и фиксировать версию исполняемого файла или ещё какого-нибудь с признаком версии...)