Авозапуск из реестра. Проблема с путём ...
От: demidov2  
Дата: 26.01.05 07:25
Оценка:
Программа создает ключ в реестре для запуска вместе с системой. При запуске она должна читать файлы из своего каталога, она читает из C:\. При простом запуске из своего каталога все нормально. Почему при запуске из реестра, при старте системы, программа не знает свой каталог?
Re: Авозапуск из реестра. Проблема с путём ...
От: ak_miass Россия  
Дата: 26.01.05 07:29
Оценка:
Здравствуйте, demidov2, Вы писали:

D>Программа создает ключ в реестре для запуска вместе с системой. При запуске она должна читать файлы из своего каталога, она читает из C:\. При простом запуске из своего каталога все нормально. Почему при запуске из реестра, при старте системы, программа не знает свой каталог?


ExtractFilePath(Application->ExeName) — спасёт?
Re[2]: Авозапуск из реестра. Проблема с путём ...
От: demidov2  
Дата: 26.01.05 07:48
Оценка:
Здравствуйте, ak_miass, Вы писали:

_>Здравствуйте, demidov2, Вы писали:


D>>Программа создает ключ в реестре для запуска вместе с системой. При запуске она должна читать файлы из своего каталога, она читает из C:\. При простом запуске из своего каталога все нормально. Почему при запуске из реестра, при старте системы, программа не знает свой каталог?


_>ExtractFilePath(Application->ExeName) — спасёт?


Про это я думал. Смущает то, что текущий каталог для программы зависит от способа запуска. Думал, может я в реестре что-то не так делаю.
Re[3]: Авозапуск из реестра. Проблема с путём ...
От: maximilian Украина  
Дата: 26.01.05 08:44
Оценка:
Здравствуйте, demidov2, Вы писали:

D>Здравствуйте, ak_miass, Вы писали:


_>>Здравствуйте, demidov2, Вы писали:


_>>ExtractFilePath(Application->ExeName) — спасёт?


D>Про это я думал. Смущает то, что текущий каталог для программы зависит от способа запуска. Думал, может я в реестре что-то не так делаю.


Это не должно смущать, поскольку нигде не оговорено, что при запуске процесса текущим каталогом для него должен быть именно тот, где расположен исполняемый файл.

Так что: ExtractFilePath(Application->ExeName) + SetCurrentDirectory
Re[2]: Авозапуск из реестра. Проблема с путём ...
От: Spaider Верблюд  
Дата: 26.01.05 09:43
Оценка:
Здравствуйте, ak_miass, Вы писали:

_>Здравствуйте, demidov2, Вы писали:


D>>Программа создает ключ в реестре для запуска вместе с системой. При запуске она должна читать файлы из своего каталога, она читает из C:\. При простом запуске из своего каталога все нормально. Почему при запуске из реестра, при старте системы, программа не знает свой каталог?


При, как ты выразился, простом запуске, у тебя рабочая папка совпадает с папкой, где находится приложение. Ты попробуй, к примеру, в FAR'е или TotalCmd скопировать полный путь к файлу, перейти в другую папку, вставить скопированный путь в командную строку и запустить. Получишь в точности свою проблему.

Решений вижу два (вру, уже нашел три):

— уже предложенное ExtractFilePath (Application.ExeName)
— каким-то образом прописать в реестре инфу о нужной папке
— прописать себя в реестре в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths Все исполняемые файлы, что там прописаны, могут быть запущены просто по имени файла "из любого места"
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
--
К вашим услугам,
Re[3]: Авозапуск из реестра. Проблема с путём ...
От: Рома Украина  
Дата: 27.01.05 15:42
Оценка:
Здравствуйте, demidov2

1. ExtractFilePath(Application->ExeName);
2. SetCurrentDir(const Dir: string): Boolean;


Не пойдет?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.