Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.04.22;
Скачать: CL | DM;

Вниз

Своё сообщение в EventLog Windows   Найти похожие ветки 

 
neversleep   (2010-11-09 17:04) [0]

Возникла проблема при добавлении записи в журнал событий:

ресурс сообщения существует, но сообщение не найдено в таблице строк и таблице сообщений
-
Не пойму почему ОС (Win7) не находит нужный ресурс, помогите разобраться. Что делаю:

1) Регистрируюсь в реестре:

HKLM\SYSTEM\CurrentControlSet\services\eventlog\Application\SvcName

С единственным параметром EventMessageFile (REG_EXPAND_SZ), который содержит путь к исполняемому файлу.

2) Создаю ресурс в своём exe`шнике:

STRINGTABLE
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
   0, "Hello"
   1, "Goodbye"
}


3) Делаю запись: (код на С++ (надеюсь это проблема :)

void LogMsg(TCHAR *s)
{
   if (g_hEventLog)
   {
       LPCTSTR p = s;

       ReportEvent(g_hEventLog, EVENTLOG_INFORMATION_TYPE, 0, 1, NULL, 1, 0, &p, NULL);
   }
}


В итоге получаю выше указанное сообщение...


 
clickmaker ©   (2010-11-09 17:32) [1]

http://www.codenet.ru/progr/delphi/stat/Event-Log.php


 
neversleep   (2010-11-09 20:40) [2]

Спасибо, эту статью я видел, и c MESSABETABLE я уже пробовал, результат тот же... Привожу код:

Содержимое mc файла (mc.exe взят из msvs c++ 6.0):

SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)

FacilityNames=(System=0x0:FACILITY_SYSTEM
Runtime=0x2:FACILITY_RUNTIME
Stubs=0x3:FACILITY_STUBS
Io=0x4:FACILITY_IO_ERROR_CODE
)

MessageIdTypedef=DWORD

LanguageNames=(Neutral=0x000:MSG00000)
LanguageNames=(Russian=0x419:MSG00419)

MessageId=0x1
Facility=Runtime
Language=Russian
%1
.


Ресурс:

LANGUAGE LANG_RUSSIAN, SUBLANG_NEUTRAL
1 MESSAGETABLE MSG00419.bin


Код добавления в реестр: (сорри что на c++)

if (!g_hEventLog)
{
TCHAR szPath[MAX_PATH];
wsprintf(szPath, TEXT("SYSTEM\\CurrentControlSet\\services\\eventlog\\Application\\%s"), ServiceName);

HKEY hKey;
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE,
     szPath,
     0,
     NULL,
     REG_OPTION_NON_VOLATILE,
     KEY_WRITE,
     NULL,
     &hKey,
     NULL
     ) == ERROR_SUCCESS)

{
 DWORD dwTmp = GetModuleFileName(hInst, szPath, MAX_PATH);

 _RegSetValue(hKey, TEXT("EventMessageFile"), REG_SZ, szPath, dwTmp);

 dwTmp = EVENTLOG_SUCCESS | EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | EVENTLOG_INFORMATION_TYPE;
 _RegSetValue(hKey, TEXT("TypesSupported"), REG_DWORD, (TCHAR*)&dwTmp, sizeof(DWORD));

 RegCloseKey(hKey);

 g_hEventLog = RegisterEventSource(NULL, ServiceName);
}
}


Хелп.

PS
ResHacker показывает что все ресурсы на месте...


 
clickmaker ©   (2010-11-10 12:31) [3]

в реестр всё прописалось? g_hEventLog != NULL ?


 
neversleep   (2010-11-10 14:49) [4]

Да, все нормально, я упустил один момент:

#define FACILITY_RUNTIME 0x2

ReportEvent(g_hEventLog, EVENTLOG_INFORMATION_TYPE, 0, MAKELONG(0x1, FACILITY_RUNTIME), NULL, 1, 0, (const CHAR**)&s, NULL);



Страницы: 1 вся ветка

Текущий архив: 2018.04.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.004 c
2-1461353048
BondFx
2016-04-22 22:24
2018.04.22
MD5


2-1461311382
istok20
2016-04-22 10:49
2018.04.22
массив из oleacc.IAccessible через TList


4-1289311489
neversleep
2010-11-09 17:04
2018.04.22
Своё сообщение в EventLog Windows


4-1288182533
Morgan128
2010-10-27 16:28
2018.04.22
Запуск процесса


15-1470208803
Юрий Зотов
2016-08-03 10:20
2018.04.22
Разновидность шахмат