Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Как определить путь до программы


Автор: apostolnikolai 11.9.2009, 21:35
Код


GetDir(0,sPath);



не катит запускаеш по ярлыку  и он определяет другой путь

Автор: kami 11.9.2009, 21:43
Почему бы не прочитать справку про GetDir? Вопрос сразу бы отпал.
Для определения папки, в которой находится запускаемый экзешник, можно воспользоваться:
Код

ExtractFileDir(ParamStr(0));

Автор: Данкинг 11.9.2009, 21:53
Код

extractfilepath(application.ExeName);

 smile 

Автор: AntonN 11.9.2009, 22:19
Данкинг, у консоли может не быть application

Автор: Rohoss 11.9.2009, 22:20
Данкинг, твой код не всегда прокатит... например если программа прописано в автозагрузке реестра 

Автор: AntonN 11.9.2009, 22:26
Rohoss, его коду все равно на автозапуск, он не использует getcurrentdir()

Автор: Rohoss 11.9.2009, 22:33
AntonN, так завтра может использовать. Лучше более универсальный код юзать...

Автор: Данкинг 11.9.2009, 22:42
Цитата(AntonN @  11.9.2009,  23:19 Найти цитируемый пост)
у консоли может не быть application 

Верно, для консольных не получится. smile 

Цитата(Rohoss @  11.9.2009,  23:20 Найти цитируемый пост)
твой код не всегда прокатит... например если программа прописано в автозагрузке реестра  

А вот тут не понял. Ну запустится прога из автозагрузки - что это меняет?

Автор: Rohoss 11.9.2009, 22:44
Цитата(Данкинг @  11.9.2009,  22:42 Найти цитируемый пост)
А вот тут не понял. Ну запустится прога из автозагрузки - что это меняет?

а ты проверь  smile 
путь будет типа C:\Documents and Settings\admin

Автор: Данкинг 11.9.2009, 22:57
Цитата(Rohoss @  11.9.2009,  23:44 Найти цитируемый пост)
а ты проверь

Ну, проверять неохота, я поверю. smile Т.е. если прога лежит в d:\proga\superproga.exe, то при запуске из HKLM....RUN мой пример будет показывать путь к учётке, а не к самой проге? smile 

Автор: AntonN 11.9.2009, 23:25
Rohoss, 
Цитата

так завтра может использовать. Лучше более универсальный код юзать... 

со времен Win9x в ХР и выше есть некоторые функции, которые не поменяли своего значения, они остались потому что это нужно для совместимости. Так же и тут, никто не будет менять функциональную часть широкоприменяемой функции. С таким же успехом можно ожидать что paramstr(0) вернет true если программа запустилась, когда нибудь в будущем smile


Данкинг, 
Цитата

А вот тут не понял. Ну запустится прога из автозагрузки - что это меняет?

он перепутал ее с GetCurrentDir(), но сдаваться не собирается

Автор: Данкинг 11.9.2009, 23:31
Цитата(AntonN @  12.9.2009,  00:25 Найти цитируемый пост)
он перепутал ее с GetCurrentDir(), но сдаваться не собирается 

А, вот теперь понятно. smile 

Автор: Rohoss 11.9.2009, 23:37
Действительно попутал… Сори..  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)