char szProcessName[STLEN];
HANDLE hProc = GetCurrentProcess();
GetModuleBaseName(hProc,NULL,szProcessName,STLEN);
Как определить путь к приложению из этого же приложения?
Как это можно сделать?Один пример в справке 6 борланд билдера я нашел но он подходит только для точки входа main().А как такое реализовать в gui приложение?
в шестом билдере должно быть application->ExeName
Код:
в твоем случае можно просто ParamStr(0) и все путь до экзешника в кармане или в переменной.
Цитата: kosfiz
я, конечно, понимаю API и все такое, но что кто-то отменил ParamStr???
в твоем случае можно просто ParamStr(0) и все путь до экзешника в кармане или в переменной.
в твоем случае можно просто ParamStr(0) и все путь до экзешника в кармане или в переменной.
А можно по подробней.А то мне раньше не приходилось сталкиватся с типом AnsiString .Как преобразовать то что возвращает ParamStr в char ?
Цитата: max_br
а чем не устраивает такое:
Код:
char szProcessName[STLEN];
HANDLE hProc = GetCurrentProcess();
GetModuleBaseName(hProc,NULL,szProcessName,STLEN);
HANDLE hProc = GetCurrentProcess();
GetModuleBaseName(hProc,NULL,szProcessName,STLEN);
GetModuleBaseName возвращает непосредственно имя файла, а не полный путь. Тут нужен GetModuleFileNameEx.
А вообще лучше использовать ParamStr, раз уж есть метод попроще.
Код:
szBuf DD 64 Dup(?)
cbBufLen Equ 256
…
Invoke GetModuleFileName,0,Offset szBuf,cbBufLen
cbBufLen Equ 256
…
Invoke GetModuleFileName,0,Offset szBuf,cbBufLen
Код:
Char szAppName[cbLen];
GetModuleFileName(0,szAppName,cbLen);
GetModuleFileName(0,szAppName,cbLen);
Цитата: kosfiz
я, конечно, понимаю API и все такое, но что кто-то отменил ParamStr???
в твоем случае можно просто ParamStr(0) и все путь до экзешника в кармане или в переменной.
в твоем случае можно просто ParamStr(0) и все путь до экзешника в кармане или в переменной.
прямо в точку, но paramstr это чисто паскалевских подход....
в билдере тоже есть ParamStr - это все примочки от Борланда.
Цитата: @pixo $oft
Ну,или если на вашем языке,то
Код:
Char szAppName[cbLen];
GetModuleFileName(0,szAppName,cbLen);
GetModuleFileName(0,szAppName,cbLen);
О то что надо.Спасибо.
если ты,конечно,будешь так щедр...Впрочем,сам я не такой щедрый...так что решать вам,а завтра будут "Новые технологии":D