Форум: "Система";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
ВнизНе найдено описание для события с кодом ( 1 ) в источнике ( ...) Найти похожие ветки
← →
Карелин Артем (2003-08-20 14:26) [0]Делов-то: из сервиса записываю в журнал логи событий.
LogMessage("Сервис запущен_",EVENTLOG_INFORMATION_TYPE,1,1);
Изменения кодов событий ни к чему не приводят. Как сделать так, чтобы в описании не было сообщений об ошибках?
Не найдено описание для события с кодом ( 1 ) в источнике ( Service1 ). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для отображения сообщений удаленного компьютера. В записи события содержится следующая информация: Сервис запущен_.
← →
clickmaker (2003-08-20 17:49) [1]Имеешь в виду, чтобы не писалось "Не найдено описание...", а только "Сервис запущен" ?
← →
Карелин Артем (2003-08-21 11:40) [2]Да.
← →
clickmaker (2003-08-21 14:11) [3]Создаешь файлик messages.mc такого вида
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)
MessageId=0x0001
Severity=Informational
SymbolicName=MSG_SERVICE_RUNNING
Language=English
Сервис запущен.
.
messages.h такого вида
#define STATUS_SEVERITY_WARNING 0x2
#define STATUS_SEVERITY_SUCCESS 0x0
#define STATUS_SEVERITY_INFORMATIONAL 0x1
#define STATUS_SEVERITY_ERROR 0x3
#define MSG_SERVICE_RUNNING 0xC0000001L
И messages.rc
LANGUAGE 0x9,0x1
1 11 MSG00001.bin
Берешь MS Message Compiler mc.exe, он входит в Visual C++. И говоришь mc.exe -c messages.mc
Он должен сделать файлик MSG00001.bin. messages.rc включаешь в свой проект
← →
clickmaker (2003-08-21 14:15) [4]Пишешь такую процедурку и запускаешь ее при инициализации сервиса.
procedure RegisterEventSrc;
const
SKeyName = "SYSTEM\CurrentControlSet\Services\EventLog\Application\Service1";
var
Reg: TRegistry;
begin
Reg := TRegistry.Create(KEY_WRITE);
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey(SKeyName, true);
Reg.WriteString("EventMessageFile", Application.ExeName);
Reg.WriteInteger("TypesSupported", 7);
Reg.CloseKey;
Reg.Free;
end;
А запись в лог делаешь следующим кодом
procedure LogMessage(Message: String; EventType: DWord;
Category: Word; ID: DWord);
var
P: Pointer;
begin
P := PChar(Message);
if hEventLog = 0 then
hEventLog := RegisterEventSource(nil, "Service1");
ReportEvent(hEventLog, EventType, Category, ID, nil, 1, 0, @P, nil);
end;
finalization
if hEventLog <> 0 then
DeregisterEventSource(hEventLog);
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c