GetExeName: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Updated author links.) |
Instructor (talk | contribs) No edit summary |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{ | {{PageAuthor|Instructor}} | ||
{{User:Instructor/Headers/Template}} | |||
== | == Function Description== | ||
<highlight-nsis> | |||
<highlight-nsis> | |||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
Line 16: | Line 11: | ||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
Get installer filename (with valid case for Windows 98/Me). | |||
Get installer filename ( | |||
Syntax: | Syntax: | ||
${GetExeName} $var | |||
</highlight-nsis> | |||
Example: | <b>Example:</b> | ||
Section | <highlight-nsis>Section | ||
${GetExeName} $R0 | |||
; $R0="C:\ftp\program.exe" | |||
SectionEnd | SectionEnd | ||
</highlight-nsis> | |||
== Function Code == | |||
<highlight-nsis> | |||
Function GetExeName | Function GetExeName | ||
!define GetExeName `!insertmacro GetExeNameCall` | |||
!macro GetExeNameCall _RESULT | |||
Call GetExeName | |||
Pop ${_RESULT} | |||
!macroend | |||
Push $0 | Push $0 | ||
Push $1 | Push $1 | ||
Push $2 | |||
System::Call /NOUNLOAD 'kernel32::GetModuleFileNameA(i 0, t .r0, i 1024)' | |||
System::Call 'kernel32::GetLongPathNameA(t r0, t .r1, i 1024)i .r2' | |||
StrCmp $2 error +2 | |||
StrCpy $0 $1 | |||
Pop $2 | |||
System::Call 'kernel32:: | |||
Pop $1 | Pop $1 | ||
Exch $0 | Exch $0 | ||
FunctionEnd | FunctionEnd | ||
</highlight-nsis> | </highlight-nsis> | ||
[[Category:Disk, Path & File Functions]] |
Latest revision as of 07:22, 7 February 2006
Author: Instructor (talk, contrib) |
Page for NSIS 2.07 and below users
You can use the latest version of headers (recommended) or the following function code (put the function code in your script before calling it)
Function Description
____________________________________________________________________________ GetExeName ____________________________________________________________________________ Get installer filename (with valid case for Windows 98/Me). Syntax: ${GetExeName} $var
Example:
Section ${GetExeName} $R0 ; $R0="C:\ftp\program.exe" SectionEnd
Function Code
Function GetExeName !define GetExeName `!insertmacro GetExeNameCall` !macro GetExeNameCall _RESULT Call GetExeName Pop ${_RESULT} !macroend Push $0 Push $1 Push $2 System::Call /NOUNLOAD 'kernel32::GetModuleFileNameA(i 0, t .r0, i 1024)' System::Call 'kernel32::GetLongPathNameA(t r0, t .r1, i 1024)i .r2' StrCmp $2 error +2 StrCpy $0 $1 Pop $2 Pop $1 Exch $0 FunctionEnd