aditu.g
14th March 2007 15:35 UTC
root drive as INSTDIR
Hi,
does anyone know a how to set the INSTDIR to be the root drive (like C:\ or D:\ depending on where the Windows has been installed). I try to find a variable for this, but I only found $WINDIR or $SYSDIR. I need to use a variable instead of just type hardcoded value C:\
Red Wine
14th March 2007 16:32 UTC
Might no work under 98/ME
OutFile 'test.exe'
ShowInstDetails show
AllowRootDirInstall true
page directory
page instfiles
Function .onInit
   ReadEnvStr $INSTDIR SYSTEMDRIVE
FunctionEnd
Section "boo"
   SetOutPath "$INSTDIR"
SectionEnd
      
      Works in all Windows versions
      
OutFile 'test.exe'
ShowInstDetails show
AllowRootDirInstall true
page directory
page instfiles
Function .onInit
   StrCpy $INSTDIR "$WINDIR" 2
FunctionEnd
Section "boo"
   SetOutPath "$INSTDIR"
SectionEnd
     
    
      KenA
      14th March 2007 16:32 UTC
      Re: root drive as INSTDIR
      
        Originally posted by aditu.g
        Hi,
        does anyone know a how to set the INSTDIR to be the root drive (like C:\ or D:\ depending on where the Windows has been installed). I try to find a variable for this, but I only found $WINDIR or $SYSDIR. I need to use a variable instead of just type hardcoded value C:\
      
Hi,
      
      with $WINDIR and the GetRoot macro, you should be able to retrieve the root drive.
      
      Now, I'm not sure that it's good practice to set the INSTDIR to the rootdrive. :o
      
      KenA
    
 
    
      aditu.g
      14th March 2007 16:48 UTC
      Yes, I can use one of the solution posted above, but both are not allowed to be used outside sections.
      I would like to define the InstallDir as "%rootdrive%\my application" and then on installation time if the person who install it want, to be possible to change.
      I have attached the script to be more specific.
     
    
      aditu.g
      14th March 2007 16:49 UTC
      
      
        Originally posted by aditu.g
        Yes, I can use one of the solution posted above, but both are not allowed to be used outside sections.
        I would like to define the InstallDir as "%rootdrive%\my application" and then on installation time if the person who install it want, to be possible to change.
        I have attached the script to be more specific.
      
     
    
      Red Wine
      14th March 2007 17:07 UTC
      
      
!define MY_APP "My application Name"
OutFile 'test.exe'
ShowInstDetails show
AllowRootDirInstall true
page directory
page instfiles
Function .onInit
   StrCpy "$INSTDIR" "$WINDIR" 2
   StrCpy "$INSTDIR" "$INSTDIR\${MY_APP}"
FunctionEnd
Section "boo"
   SetOutPath "$INSTDIR"
SectionEnd
     
    
      aditu.g
      14th March 2007 17:09 UTC
      Done. I get rid of the InstallDir and use only $INSTDIR. It seems that it is used also on the choose directory page so it better like this. Sorry to waste forum space for such stupid question, but this root installation poped out with Vista. NSIS installer is able to do the installation using RequestExecutionLevel admin but then if you install the app on program files and on runtime wants to write there it will not work, that's why I wanted to install it on the system root (not directly there but in a folder :)