|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.01.2014, 22:02 | #1 | |
Форумчанин
Регистрация: 01.06.2012
Сообщений: 139
|
Странное повидение
Всем доброго времени суток.
Есть приложение которое по событию FormCreate читает информацию из текстового файла вот таким образом: Цитата:
Так вот проблема в том, что когда я добавил его в автозагрузку вылетает ошибка "Can not open file 'С:\windows\system32\text\Time_and_ Date.txt'". Я написал вторую программу которая запустит мой Exe-шник с помощью функции ShellExecute так вот выяснилось, что моё приложение каким-то чудесным способом берёт свой путь от того от кого запустилось. Как такое возможно???
Следствие: 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.
|
|
01.01.2014, 22:19 | #2 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
ExtractFilePath(ParamStr(0)) - путь к вашей программе. Танцуйте от этого пути для открытия файлов.
|
01.01.2014, 22:34 | #3 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
Правила форума запрещают создавать темы с бессмысленным названием. По поводу самого сообщения используй полный путь, а не сокращение. Дополнительного приложения не потребуется.
|
02.01.2014, 12:40 | #4 | |
Форумчанин
Регистрация: 21.01.2012
Сообщений: 240
|
Если твоя программа лежит в c:\mysoft\proga.exe , то
Application.Exename = 'c:\mysoft\proga.exe' ExtractFilePath(Application.Exename ) = 'c:\mysoft\' обращайся не просто к 'text\Time_and_Date.txt', а к ExtractFilePath(Application.Exename )+'text\Time_and_Date.txt' то есть: Цитата:
Последний раз редактировалось blackstrip; 02.01.2014 в 12:45. |
|
02.01.2014, 13:05 | #5 | |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Следствие: 99% проблем, сваливаемых на странное поведение, является следствием ошибок самих программистов.
См в гугле текущая папка/рабочая папка. Правильный ответ уже дан ExtractFilePath(ParamStr(0)), ну или Application.Exename вместо ParamStr(0) Есть также другой способ, у ярлыка в автозагрузке указать рабочую папку (ту папку, где exe-шник находится). Предпочтительнее делать первым способом, второй - это в данном случае костыль. Цитата:
Ну а код нужно обрамлять другим тегом (кнопка с решёткой #) Код:
|
|
08.02.2014, 11:17 | #6 | |
Форумчанин
Регистрация: 01.06.2012
Сообщений: 139
|
Цитата:
Следствие: 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странное условие... | Илья Дикушин | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 03.08.2013 20:32 |
Странное отоброжение | MaRKer.nsk | HTML и CSS | 1 | 31.03.2012 18:00 |
Странное поведение gets | alex_alpha | Общие вопросы C/C++ | 3 | 27.03.2010 18:21 |
Че-то странное .... | ~Brilliant~ | Безопасность, Шифрование | 9 | 27.04.2009 13:57 |
Странное закрытие | joker | Win Api | 18 | 29.03.2008 07:45 |