![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Направильно запускается программа на 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]Как быть?
Может это глюк исключительно операционки?