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

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

Направильно запускается программа на CD через AutoRun [D6, WinXP]


Megabyte-CeerCop ©   (2004-11-10 14:45:00) 

Давно сталкивался с такой проблемой на других дисках, а сейчас, когда самому понадобился диск с Аутораном, пытаюсь её решить.

Есть программа на диске, которая в AutoRun.ini уже прописана, и при вставке диска запускается как надо.

Но если диск в CD-rom уже давно находится, и я запускаю CD через ярлык на рабочем столе, моя прога считает что сама она находится на рабочем столе и пытается искать ресурсы на рабочем столе.
Т.е. в прогу неправильно передается текущая директория.


Megabyte-CeerCop   (2004-11-12 13:30:00) [1]

Оказывается есть такая штука

Application.ExeName; (или Application.NameExe;)
это свойство содержит полный путь к файлу приложения :))

Знал бы раньше, сколько б глюков с этими путями избежал. :(


Megabyte-CeerCop   (2004-11-12 13:19:00) [2]


> wal ©   (12.11.04 10:56) [14]

Вот это да! Фенькс большой!
Никогда не слыхал о таком.
Щас проверю.  :)


wal   (2004-11-12 10:56:00) [3]

ParamStr[0] - содержит название исполняемого файла с полным путем к нему.

С уважением.


Pat   (2004-11-12 10:53:00) [4]

При запуске программы пропиши
SetCurrentDir(ExtractFilePath(paramstr(0)))


Megabyte-CeerCop   (2004-11-12 10:46:00) [5]


>  Зачем твоя программа пытается искать что-то в текущей директории

А как узнать откуда реально запущен EXE?!

Заявленная функция GetDir возвращает текущую папку, а не ту, в которой находится EXE.

А ярлык на CD создаётся с ошибкой (не прописывается путь) если в момент создания в приводе нет диска. Если создавать ярлык (перетаскиванием) когда диск есть, всё ок.


wal   (2004-11-10 16:34:00) [6]

Текущая директория и директория запуска программы - это несколько разные вещи. Зачем твоя программа пытается искать что-то в текущей директории (которая, в общем случае, может быть любой)? Почему бы не искать именно там, где нужно? Узнал, откуда программа запустилась и вперед на мины, хотя бы изменить текущую директорию, но лучше прямое указание пути к нужным файлам.

С уважением.


Pentium133   (2004-11-10 16:29:00) [7]

Кто создает ярлык? Если программа - то она знает с какого диска запущенна - запишет что надо, если пользователь руками - тоже путь впишется автоматически.


Jel   (2004-11-10 16:26:00) [8]


> Pentium133 ©   (10.11.04 15:32) [8]

Потому что не у всех CD на букве D:


Pentium133   (2004-11-10 15:32:00) [9]

Почему?


Megabyte-CeerCop   (2004-11-10 15:30:00) [10]

Эх, ламер я позорный!
Диск вставил, и путь сразу прописался :)),
после этого прога стала работать правильно при запуске с ярлыка.
Спасибо всем.

Одно меня не радует - ведь у многих работать будет неправильно.


Pentium133   (2004-11-10 15:16:00) [11]


> Наверно это так, но когда я пытаюсь прописать эту
> директорию, винда его не пропускает, и пишет что
> директория задана неверно.

Прописывай в тот момент когда диск находится в CD


uny   (2004-11-10 15:16:00) [12]

может "d:\" и что бы в это время диск там был


Megabyte-CeerCop   (2004-11-10 15:11:00) [13]


> А вот как и что в программе обрабатыыается - это вопрос.


Та вроде всё как надо. Ведь при реальной вставке диска в CD всё пашет.


> Pentium133 ©   (10.11.04 14:47) [1]
> Может в ярлыке нужно правильно прописать рабочую директорию

Наверно это так, но когда я пытаюсь прописать эту директорию, винда его не пропускает, и пишет что директория задана неверно.
И почему при простом перетягивании CD из папки мойКомпьютер на рабочий стол ярлык создается без прописания этого пути ???
Ведь все юзеры (я в том числе):)) делают ярлыки на CD именно так.

PS как прописать путь "D:/" ? чтобы винда его приняла?


panov   (2004-11-10 14:51:00) [14]

И текущий каталог и каталог запуска программы передается правильно, и глюка никакого нет.
А вот как и что в программе обрабатыыается - это вопрос.


Pentium133   (2004-11-10 14:47:00) [15]

Может в ярлыке нужно правильно прописать рабочую директорию


Megabyte-CeerCop   (2004-11-10 14:47:00) [16]

Как быть?
Может это глюк исключительно операционки?


Наверх

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