![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программа через автозапуск не работает [D6, WinXP]
Vasya.ru © (2004-08-17 17:21:00)Прога использует 3 файла, прописываю в реестр в автозапуск - при старте Винды вылезает сообщение "File not Found", форма создается, но строки из файлов не грузятся.
Запускаю её мышкой - все работает. В чем может быть причина?
Senich (2004-08-23 14:17:00) [1]А где скачать эту программу?
Makssim (2004-08-18 18:42:00) [2]Anatoly Podgoretsky © (18.08.04 17:33) [14]
Ошибка в функции PoiskInFile
программа работает, ошибка только при старте через автозапуск
Anatoly Podgoretsky (2004-08-18 17:33:00) [3]Ошибка в функции PoiskInFile
Iconka (2004-08-18 13:06:00) [4]Попробуй в ярлыке запуска указать нужную рабочую папку
wicked (2004-08-18 12:52:00) [5]это
> AssignFile (MyFile, ItsAdres + 'Date.AS');
> {$I-}
> Reset (MyFile);
> {$I+}
> If IOResult <> 0 Then
> Begin
> ShowMessage ('Файл Date.AS не найден');
> ReWrite (MyFile);
> CloseFile (MyFile);
> Application.Terminate;
> End
> Else CloseFile (MyFile);
заменить на FileExists(ItsAdres + 'Date.AS')
а вот это
> Date : String;
переименовать... Date - стандартная функция...
(2004-08-18 02:16:00) [6]Удалено модератором
Vasya.ru (2004-08-18 01:56:00) [7]код в студию
procedure MainForm.FormCreate(Sender: TObject);
Var
Stroka : Integer;
Date : String;
Comment : String; // Результат ф-ции ShowComment
...
ItsAdres : String; // Полный адрес файла
MyFile : TextFile;
Begin
ItsAdres := ExtractFilePath(paramstr(0));
// ==== Проверяем, есть ли файл Date.AS ====
AssignFile (MyFile, ItsAdres + 'Date.AS');
{$I-}
Reset (MyFile);
{$I+}
If IOResult <> 0 Then
Begin
ShowMessage ('Файл Date.AS не найден');
ReWrite (MyFile);
CloseFile (MyFile);
Application.Terminate;
End
Else CloseFile (MyFile);
...
Date := DateToStr(now);
Stroka := PoiskInFile (ItsAdres + 'Date.AS',Date);
If (Stroka > 0) Then
Begin
Lbl1.Caption := 'Здесь текст';
Comment := ShowComment (Stroka); // Возвр. заданную стр. из файла
If (Comment = '') Then Comment := 'Комментарий отсутствует';
LblDate.Caption := Date;
LblComment.Caption := Comment;
MP.AutoOpen := True;
MP.FileName := ItsAdres + 'Muzic.mid';
MP.Open;
MP.Play;
End
Else Application.Terminate;
End;
DeadMeat (2004-08-18 01:08:00) [8]Лучше видимо "код в студию" ©
---
...Death Is Only The Begining...
Vasya.ru (2004-08-17 22:30:00) [9]Сделал как советовали - все равно "File not found".
Ввел проверку на наличие файлов - должны ShowMessage вылезать, если файлов нет, они не вылезают, форма рисуется, текст из файлов не грузится
Vasya.ru (2004-08-17 19:46:00) [10]Спасибо, пойду переделывать программу
Иван Ширко (2004-08-17 18:24:00) [11]Извиняюсь, неправильно прочитал вопрос:-(
Нужно установить текущую директорию для файлов, либо писать правильные имена, либо код в студию.
Удачи!
Иван Ширко (2004-08-17 18:21:00) [12]Путь к файлу должен быть в сокращённом варианте.
Такой делает в Delphi функция ExtractShortPathName (?)
Удачи!
DVM (2004-08-17 17:51:00) [13]
>
> Vasya.ru (17.08.04 17:46) [3]
Когда запускаешь мышкой, то текущая директория та, из которой запустили программу и она без проблем находит файлы у себя в папке.
Когда все это дело запускается через реестр, текущая директория после запуска может и меняться и программа не находит их.
Надо к своим файлам обращаться по полному пути. Путь к проге можно выяснить ParamStr(0), выделить папку и добавить имя файла, с которым надо работать.
Vasya.ru (2004-08-17 17:46:00) [14]Файлы загружаются по имени. Рабочая директория c:\Program Files\Reminder\
wicked (2004-08-17 17:23:00) [15]как загружаются файлы - по полному пути или просто по имени?...
рабочая директория у программы какая?...
Vasya.ru (2004-08-17 17:22:00) [16]В реестре название ключа на Русском - от этого проблем не может быть?