Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

подскажите плз, можно ли из под сервиса писать файл?


Layner ©   (2004-12-24 11:21:00) 

Такой код:

procedure TService.eFile(txt: string);
var
 TF: TextFile;
begin
 AssignFile(TF, 'C:\log.txt');
 Append(TF);
 Writeln(TF, txt);
 CloseFile(TF);
end;

Стандартная процедурка... Из под обычного приложения работает, в запущеном сервисе выдает ошибку (в Просмотре Событий: Invalid floating point operation.)
Подскажите, можно ли из сервиса писать файлы? По идее конечно можно, но почему у меня не работает, ничего не понимаю. Заранее спасибо.


Leonid Troyanovsky   (2004-12-25 14:23:00) [1]


> Layner ©   (24.12.04 12:04) [2]
> Спасибо, только как это messagebox в сервисе? А с исключением


MB_SERVICE_NOTIFICATION

--
Regards, LVT


Digitman   (2004-12-24 12:17:00) [2]


> как это messagebox в сервисе?


если это Win32-сервис, стартующий при входе пользователя в систему и взаимодействующий с польз.десктопом, то messagebox вполне подойдет для целей отладки - будет работать обычным образом как в обычном GUI-приложении

иначе придется задействовать штатный механизм протоколирования событий в виде использования метода TService.LogMessage вместо вывода модального диал.окна


Layner   (2004-12-24 12:04:00) [3]

Спасибо, только как это messageboxв сервисе? А с исключением попробую.


Digitman   (2004-12-24 11:35:00) [4]


> ничего не понимаю


а что тут понимать ?

возьми да напиши

procedure TService.eFile(txt: string);
var
TF: TextFile;
begin
try
 AssignFile(TF, 'C:\log.txt');
 Append(TF);
 Writeln(TF, txt);
 CloseFile(TF);
except
 on e:exception do
  messagebox(0, pchar(e.classname + ' ' + e.message), 'Ничего не понимаю, но исключение все же происходит', mb_ok or mb_setforeground)
end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо