![]() |
|
|
![]()
|
|
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Пиплы!
Написал прогу, которая должна открывать файл через fopen и производить с ним определенные действия. Так вот. Работает нормально, НО!... Прописал ее в автозагрузку через реестр HKLM-... CurrentVersion-Run - и все, файл открыть не может. Fopen возвращает NULL. Пути правильные, если вручную щелкаю по проге - открывает нормально, а в автозагрузке - не хочет. Пробовал в папку Автозагрузка - открывает без проблем, а через реестр - не открывает. Подскажите, в чем проблема? --------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
может быть SetCurrentDirrectory?
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
SkyHawk, Скорее всего путь в реестре не верный.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
В реестре точно верный. Программа-то запускается и выполняется. Я же говорю - она не может открыть другой файл. При том, что если запускаю вручную, она открывает этот файл без проблем.
--------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
тогда сделай в проге после запуска сеткарентдиректори с текущей дерикторией твоей проги
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Да вероятно пути короткие заданы.. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Да полные пути заданы. Я же говорю - если этот же экзешник вручную запускать - открывает нужный файл без проблем. А если он же запускается из реестра - фиг с булочкой.
--------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
SkyHawk, Если функция не запустила прогу, то она должна выдать код ошибки как результат, надо его выести на экран про помощи messagebox или в лог как больше нравится.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Клевое разбирательство.
Может все таки код в студию??? На мой взгляд несколько причин. Если прописаны полные пути, то возможно вместо двух // стоит один / разделитель. Или путь к файлу идет в переменной, но в конце нет разделителя. Или не обрабатывается текущий каталог. Я могу долго гадать (и не только я), но пока кода не будет, очень трудно разбираться в программе!!! -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Bima, ну с кодом и дурак может
Ну если будет хоть код ошибки уже можно будет выводы делать... -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Не факт. А если код вернет, что путь не правильный и такого файла нет? Хотя иногда этот код срабатывает, то это опять не даст точного диагноза ошибки программы. Будет только опять куча предположений, и возможно они все будут неверны. Иследование кода, это наиболее быстрое и безошибочное устранение данной ошибки!!! -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| Ventur |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 15.9.2006 Репутация: нет Всего: нет |
SFile = ExtractFilePath(Application->ExeName);
тоже была такая проблема с файлом справки |
|||
|
||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Привожу кусок кода, отвечающий за открытие файла.
--------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Заменил GetCurrentDir() на ExtractFilePath(Application->ExeName). Все заработало нормально. То есть, получается, функция GetCurrentDir() по какой-то причине из автозагрузки не отрабатывает.
Всем спасибо. Тема закрыта. --------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Дело в том, что GetCurrentDir по разному возвращает путь. Попробуй на примере помести программу на диск С, а потом в какую нибудь папку. В первом случае переменная вернется с "\", во втором случае "\" не будет!!!
Что бы все проверить, нужно было в твой блок if поставить строчку: ShowMessage(Papka.c_str()); -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |