Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать папку из которой запущена программа? [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);


Наверх

Титульная страница Поиск, карта сайта Написать письмо