![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать папку из которой запущена программа? [D6, XP]
user1024 © (2007-09-06 20:15:00)Здравствуйте
Есть .ini файл в папке с программой. Как узнать к нему путь?
user1024 (2007-09-06 22:13:00) [1]Инс ©
Благодарю.
delphiForever (2007-09-06 20:42:00) [2]
> Инс © (06.09.07 20:38) [14]
пардон... благодарю за подробное объяснение...
Инс (2007-09-06 20:38:00) [3]Объясняю подробно. У каждого процесса есть такой параметр - текущая директория. Смысл его - директория, в которой ищется файл, если полный путь не указан. Задается этот параметр в при создании процесса (см. функцию CreateProcess). При запуске программы из эксплорера, он обычно устанавливает этот параметр равным пути к файлу, однако в общем случае это разные параметры. Например, в свойствах ярлыка текущую директорию можно изменить. А если, скажем, программа в автозагрузке, то система и вовсе передаст в этом параметре при создании процесса nil.
delphiForever (2007-09-06 20:37:00) [4]
> Путь к программе изменяет, что ли? :)
рабочий каталог кажется
только что вызвал GetCurrentDir, получил 'D:\....' путь к программе откуда она запущенна, только без завершающей кавычки '\'
Инс (2007-09-06 20:34:00) [5]
> изменяет каталог
Путь к программе изменяет, что ли? :)
Anatoly Podgoretsky (2007-09-06 20:34:00) [6]> delphiForever (06.09.2007 20:33:10) [10]
Но по твоей идеологии устанавливает каталог из которого запущенно программа
delphiForever (2007-09-06 20:33:00) [7]
> Инс © (06.09.07 20:31) [7]
> А что тогда делает SetCurrentDir? ;)
изменяет каталог
Anatoly Podgoretsky (2007-09-06 20:32:00) [8]> Инс (06.09.2007 20:27:05) [5]
Я знаю какая реализация, но это контролируемое свойства и в любой момент реализация может измениться, вероятность такая есть.
Anatoly Podgoretsky (2007-09-06 20:32:00) [9]> delphiForever (06.09.2007 20:29:06) [6]
Никогда не возвращал.
Инс (2007-09-06 20:31:00) [10]
> GetCurrentDir - вроде возвращает путь к программе
А что тогда делает SetCurrentDir? ;)
Если убедил, что вы неправы, могу объяснить подробнее почему.
delphiForever (2007-09-06 20:29:00) [11]
> > [1] delphiForever (06.09.07 20:22)
>
> Это неверно
почему ооо? GetCurrentDir - вроде возвращает путь к программе
Инс (2007-09-06 20:27:00) [12]
> Application.Exename
А разница? Реализацию Application.Exename посмотрите.
Инс (2007-09-06 20:26:00) [13]
> [1] delphiForever (06.09.07 20:22)
Это неверно
> [2] Efir © (06.09.07 20:24)
А это почти верно. Правильно так:
Path:=ExtractFilePath(ParamStr(0));
Anatoly Podgoretsky (2007-09-06 20:25:00) [14]> Efir (06.09.2007 20:24:02) [2]
Application.Exename
Efir (2007-09-06 20:24:00) [15]ParamStr(0)
delphiForever (2007-09-06 20:22:00) [16]ShowMessage(GetCurrentDir);