GetTimeStamp: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
(Created page with '== Usage == === Format === * YYYYMMDDHHmmSS.xxxx === Example === <highlight-nsis> Call GetTimeStamp Pop $0 DetailPrint "TimeStamp=$0" </highlight-nsis> == Function Source == <h...')
 
m (moved Function GetTimeStamp to GetTimeStamp: Rename)
(No difference)

Revision as of 22:26, 8 June 2009

Usage

Format

  • YYYYMMDDHHmmSS.xxxx

Example

Call GetTimeStamp
Pop $0
DetailPrint "TimeStamp=$0"

Function Source

Function GetTimeStamp
 
    ## Store the needed Registers on the stack
        Push $0 ; Stack $0
        Push $1 ; Stack $1 $0
        Push $2 ; Stack $2 $1 $0
        Push $3 ; Stack $3 $2 $1 $0
        Push $4 ; Stack $4 $3 $2 $1 $0
        Push $5 ; Stack $5 $4 $3 $2 $1 $0
        Push $6 ; Stack $6 $5 $4 $3 $2 $1 $0
        Push $7 ; Stack $7 $6 $5 $4 $3 $2 $1 $0
        Push $8 ; Stack $8 $7 $6 $5 $4 $3 $2 $1 $0
 
    ## Call System API to get the current system Time
        System::Alloc 16
        Pop $0
        System::Call 'kernel32::GetLocalTime(i) i(r0)'
        System::Call '*$0(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2)i (.r1, .r2, .r3, .r4, .r5, .r6, .r7, .r8)'
        System::Free $0
 
    ## Generate Timestamp
        StrCpy $0 $1$2$4$5$6$7.$8
 
    ## Restore the Registers and add Timestamp to the Stack
        Pop $8  ; Stack $7 $6 $5 $4 $3 $2 $1 $0
        Pop $7  ; Stack $6 $5 $4 $3 $2 $1 $0
        Pop $6  ; Stack $5 $4 $3 $2 $1 $0
        Pop $5  ; Stack $4 $3 $2 $1 $0
        Pop $4  ; Stack $3 $2 $1 $0
        Pop $3  ; Stack $2 $1 $0
        Pop $2  ; Stack $1 $0
        Pop $1  ; Stack $0
        Push $0 ; Stack ${TimeStamp} $0
        Exch    ; Stack $0 ${TimeStamp}
        Pop $0  ; Stack ${TimeStamp}
 
FunctionEnd