:: Архив конференции по VFP до 2005 года
Путь к EXE-файлу.
Forward
Подскажите, пожалуйста, как из EXE-файла определить путь к нему. Т.Е. из какой папки запущена программа.
Ratings: 0 negative/0 positive
Re: Путь к EXE-файлу.
Владимир Максимов
Автор

Сообщений: 14098
Откуда: Москва
Дата регистрации: 02.09.2000
?FullPath("") && пустая строка (две кавычки подряд) - обязательны
?sys(5)+sys(2003)




------------------
Ratings: 0 negative/0 positive
Re: Путь к EXE-файлу.
KDanylo

Сообщений: 139
Откуда: Welland ON
Дата регистрации: 05.09.2002
SYS (16, 0)




------------------
Ще в нашому лісі запалає ватра...
Ratings: 0 negative/0 positive
Re: Путь к EXE-файлу.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Владимир!

Это не обязательно будет путь к папке где расположен exe - это путь к
ТЕКУЩЕЙ папке, а в ярлыке для exe можно например задать этот путь отличным
от того пути где сам exe лежит. SYS(16, 1) это то что нужно...




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Путь к EXE-файлу.
Владимир Максимов
Автор

Сообщений: 14098
Откуда: Москва
Дата регистрации: 02.09.2000
Ну, Игорь, если уж быть настолько дотошным, то и SYS(16) - не гарантия правильности определения пути. А если запуск одного EXE из другого (надо определить положение подчиненного EXE)? А если главный стартовый файл - это форма?

Для большинства стандартных ситуаций требуется определить именно директорию по умолчанию. Если это не так, то опираться на какие-либо функции - заведомо порочный путь. Требуется просто где-то хранить эти пути доступа.




------------------
Ratings: 0 negative/0 positive
Re: Путь к EXE-файлу.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Владимир!

Хм, если прочитать вопрос, то вроде ясно что не текущий каталог интересует.
А что есть ограничения - так конечно есть! Я лишь хотел подчеркнуть, что
текущий и каталог размещения EXE это зачастую РАЗНЫЕ каталоги,
и если я с трудом могу представить что пользователь вдруг напишет на фоксе
свою программу и станет из неё запускать наш exe (а если мы сами такое
сделаем, то наверняка сами-же и решим вопрос!), а вот что он создаст свой
ярлык (или изменит наш) и стартовый каталог станет # каталогу размещения
exe - это весьма вероятный ход событий.
Цитата:
Если это не так, то опираться на какие-либо функции - заведомо
порочный путь. Требуется просто где-то хранить эти пути доступа.
Да,
это реально выход - например для COM+ приложений как я понимаю это самое
то - указать в реестре, где же искать каталог размещения компоненты (т.к.
там могут лежать какие-то сопутствующие файлы).
Но ты же не предложил сразу этот вариант А твой вариант просто когда-то
давно больно меня ударил - достаточно долго я выяснял, почему-же это
программа "вдруг" (ну как обычно пользователь говорит - "ничего не трогал,
она сама") перестала работать.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Путь к EXE-файлу.
Владимир Максимов
Автор

Сообщений: 14098
Откуда: Москва
Дата регистрации: 02.09.2000
Эх, Игорь. Вот любишь ты все усложнять! ;)

Ну, предположим, новичек написал новую программу (EXE). Как он будет ее использовать? Да как проще всего! Положит в некую папку, создаст ярлык через визард ярлыков. Все! Будет он в этом ярылке что-то менять? Сильно сомневаюсь!

Т.е. при "штатной" работе директория расположения EXE совпадает с директорией по умолчанию! И из вопроса это неявно видно. Нигде нет упоминания о директории по умолчанию. Ведь вопрос не звучит как "Директория расположения EXE отлична от директории по умолчанию".

Вот если Forward все-таки ответит и скажет, что FullPath("") не сработал, то это и будет говорить о том, что директория расположения EXE не совпадает с директорией по умолчанию. НО! В этом случае нет никакой гарантии, что сработает и SYS(16) (почему, описал ранее). Тут уже потребуются файлы инициализации, или запись в системный реестр, или передача пути как параметра в EXE.




------------------
Ratings: 0 negative/0 positive


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

On-line: 5 (Гостей: 5)

© 2000-2024 Fox Club 
Яндекс.Метрика