Replace File On Reboot: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
No edit summary |
m (→Description: Grammar.) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
{{PageAuthor| | {{PageAuthor|Shane}} | ||
== Description == | == Description == | ||
Replace an existing file on reboot | Replace an existing file on reboot (for replacing files in-use, etc.). | ||
== The Script == | == The Script == |
Latest revision as of 20:31, 6 May 2013
Author: Shane (talk, contrib) |
Description
Replace an existing file on reboot (for replacing files in-use, etc.).
The Script
!define PRODUCT_CODE "MyProductCode" RequestExecutionLevel admin ShowInstDetails show ; The name of the installer Name "ReplaceOnReboot" ; The file to write OutFile "ReplaceOnReboot.exe" ; Get the existing product installation directory - use that for the INSTDIR value InstallDirRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_CODE}" "InstallLocation" Section "" ;No components page, name is not important StrCmp $INSTDIR "" 0 +2 ; If the INSTDIR is empty, we need to abort Abort ;Stage the files in the Windows\Temp directory until the next reboot ;then call MoveFileEx to move them after the next reboot CreateDirectory "$WINDIR\Temp\${PRODUCT_CODE}" SetOutPath "$WINDIR\Temp\${PRODUCT_CODE}" File "test.dll" ;Call MoveFileEx on each file above (Params: <source>, <destination>, 4) 5 == Move on Reboot && Replace Existing System::Call "kernel32::MoveFileEx(t '$WINDIR\Temp\${PRODUCT_CODE}\test.dll', t '$INSTDIR\test.dll', i 5)" SectionEnd ; end the section