![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
создать файл сообщений (разработка службы) [D6, WinXP]
Anonymous © (2004-04-22 05:38:00)Хочу чтобы в EventLog служба писала сообщения из exe-файла.
Как создать файл сообщений и включить его в проект.
Про mc.exe (Microsoft message compiler), знаю но прикрутить получившийся rc файл к проекту не смог.
Посоветуйте как поступить.
Заранее благодарен.
Digitman (2004-04-22 14:17:00) [1]
> Прописал в проекте {$R 1.rc}
в проекте ты не вправе использовать *.rc, только - *.res
файл *.res получается из файла *.rc при помощи входящего в состав Делфи компилятора ресурсов
файл, обрабатываемый компилятором ресурсов, должен выглядеть, наверно, примерно так
MyMsgTable RT_MESSAGETABLE '1.rc'
полученный в рез-те компиляции res-файл ты как раз и должен подключить директивой $R, чтобы при линковке проекта этот ресурс был включен в исп.файл
Бармалей (2004-04-22 14:12:00) [2]С этим вопросом я тоже долго разбирался, но наконец все выяснил. Есть 2 пути решения. Черкани письмецо на barma<собака>front.ru ,
вышлю рекомендации и пример, но не раньше понедельника - мало времени.
clickmaker (2004-04-22 14:09:00) [3]Add to project - 1.rc
Anonymous (2004-04-22 13:33:00) [4]Написал файл сообщений следующего вида:
"MessageId = 0
Severity = Success
Facility = Application
SymbolicName = MSG_ERR
Language = English"
скомпилировал при помощи mc.exe
Получил 3 файла .BIN,.h,.rc
Прописал в проекте {$R 1.rc} а линкер дает ошибку Unsupported 1-bit resource.
Подскажите как сделать правильно.
{$R 1.rc}
Digitman (2004-04-22 10:59:00) [5]почему не удалось подключить ресурс ?
его тип д.б. RT_MESSAGETABLE
кр.того, в реестре должна иметься ветка
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySvcApp
а в ней минимум два параметра
EventMessageFile - полный путь к твоему приложению
TypesSupported - кол-во типов сообщений, поддерживаемое тобой
Anonymous (2004-04-22 09:55:00) [6]По умолчанию.
EventType: DWord = 1;
Category: Integer = 0;
ID: Integer = 0
LogMessage(".....",EVENTLOG_ERROR_TYPE);
Digitman (2004-04-22 09:39:00) [7]а как ты задаешь параметры EventType, Category, ID ?
Anonymous (2004-04-22 08:49:00) [8]Спасибо.
Я так и делаю но, перед тексом моего сообщения вставляется:
"Не найдено описание для события с кодом ( 0 ) в источнике (...). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для отображения сообщений удаленного компьютера. Попробуйте использовать ключ /AUXSOURCE= для получения этого описания, - дополнительные сведения об этом содержатся в справке. В записи события содержится следующая информация:"
Я хочу узнать как избавиться от этой записи.
Digitman (2004-04-22 08:27:00) [9]
> Anonymous
а оно тебе точно надо ? может, велосипед изобретаешь ?
ведь сервисы изначально уже поддерживают механизм протоколирования, позволяя регистрировать события в системном EventLog-реестре
посмотри внимательней на описание метода TService.LogMessage, это как раз то что тебе нужно