Функция GetExePath возвращает путь, откуда был запущен exe-файл
программы. Она бывает полезна если нужно
найти файлы программы, которые находятся в
основном каталоге программы или в ее
подкаталогах (например файлы базы данных).
Использует функцию Windows API32 GetModuleFileName,
прототип которой:
GetModuleFileName(HINSTANCE,*LPSTR,DWORD),DWORD,PASCAL,RAW,NAME('GetModuleFileNameA')
Прототип функции: GetExePath Function(),String
GetExePath FUNCTION
!===========================================
loc:Instance ULONG
loc:FNSize ULONG
loc:AppFileName CSTRING(255)
loc:ExeFile STRING(120)
loc:ProgPath STRING(120)
CODE
loc:Instance = System{PROP:AppInstance}
loc:AppFileName = ''
loc:FNSize = Size(loc:AppFileName)
r# = GetModuleFileName( loc:Instance, loc:AppFileName, loc:FNSize )
if r# <> 0
p# = RCharPos( '\', loc:AppFileName )
if p#=0
p# = RCharPos( ':', loc:AppFileName )
.
loc:ExeFile = sub( loc:AppFileName, p#+1, len(clip(loc:AppFileName)) )
! Вычесть длину строки loc:ExeFile
loc:ProgPath = sub( loc:AppFileName, 1, len(clip(loc:AppFileName))-len(clip(loc:ExeFile)) )
else
loc:ProgPath = Path()
if sub( loc:ProgPath,1,len(clip(loc:ProgPath)) ) <> '\'
loc:ProgPath = clip(loc:ProgPath) & '\'
.
.
return( loc:ProgPath )
Функция GetExeName возвращает имя запущенного exe-файла программы. Она бывает полезна, например, для фрмирования имени ini-файла программы
Использует функцию Windows API32 GetModuleFileName, прототип которой:
GetModuleFileName(HINSTANCE,*LPSTR,DWORD),DWORD,PASCAL,RAW,NAME('GetModuleFileNameA')
Прототип функции: GetExeNamr Function(),String
GetExeName FUNCTION
!===========================================
loc:Instance ULONG
loc:FNSize ULONG
loc:AppFileName CSTRING(255)
loc:ExeFile STRING(120)
loc:ProgPath STRING(120)
CODE
loc:Instance = System{PROP:AppInstance}
loc:AppFileName = ''
loc:FNSize = Size(loc:AppFileName)
r# = GetModuleFileName( loc:Instance, loc:AppFileName, loc:FNSize )
if r# <> 0
p# = RCharPos( '\', loc:AppFileName )
if p#=0
p# = RCharPos( ':', loc:AppFileName )
.
loc:ExeFile = sub( loc:AppFileName, p#+1, len(clip(loc:AppFileName)) )
.
return( loc:ExeFile )