NSIS ничего не пишет самостоятельно, поэтому, если вы не добавили запись в <HKLM/HKCU>\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
или Software \ Yourcompany \ Yourapp самостоятельно, вам придется искать компьютер с помощью FindFirst, FindNext. (Гадкий)
Если у вас есть запись в реестре, вы можете использовать InstallDirRegKey или обычные функции реестра:
!define MyRegKey "Software\MyCompany\MyApp"
InstallDirRegKey HKLM "${MyRegKey}" InstallDir
var LockDirPage
!include LogicLib.nsh
Function .onInit
${If} ${FileExists} "$instdir\MyApp.exe"
StrCpy $LockDirPage 1
${EndIf}
FunctionEnd
Function dirshow
${If} $LockDirPage = 1
FindWindow $0 "#32770" "" $HWNDPARENT
GetDlgItem $1 $0 0x3FB
EnableWindow $1 0
GetDlgItem $1 $0 0x3E9
EnableWindow $1 0
${EndIf}
FunctionEnd
page directory "" dirshow
page instfiles
Section
WriteRegStr HKLM "${MyRegKey}" InstallDir $instdir ;save location
SectionEnd