Ключи реестра
Создайте следующий ключ реестра:
HKEY_LOCAL_MACHINESYSTEM - CurrentControlSet - Services - Eventlog - Application - <AppName>
Имя приложения AppName должно совпадать с именем источника, использованного при вызове RegisterEventSource, потому что просмотрщик событий будет использовать это имя для отыскивания событий.
Создайте следующие ключи:
Имя ключа |
Тип |
Описание |
CategoryCount (Optional) |
Integer |
Количество категорий событий, которые вы собираетесь использовать. (Это максимальная величина, и не будет проблем, если не все категории на самом деле будут применяться). |
CategoryMessageFile (Optional) |
String |
Файл, содержащий ресурсы строк категорий. |
EventMessageFile |
String |
Файл, содержащий ресурсы строк событий. |
TypesSupported |
Integer |
Допустимые типы событий. |
Пример кода для создания необходимых записей в реестре:
Code: |
VAR Reg:TRegistry; RegKey:String; AppPath:String; AppName:String; NumCategories:Integer;
Begin Reg:=TRegistry.Create; Try AppPath:=Application.ExeName; AppName:='MyApplication'; NumCategories:=2; RegKey:= Format('SYSTEMCurrentControlSetServicesEventLogApplication%s',[AppName]); Reg.RootKey:=HKEY_LOCAL_MACHINE; Reg.OpenKey(RegKey,True); // Собственное имя Reg.WriteString('CategoryMessageFile',AppPath); // Собственное имя Reg.WriteString('EventMessageFile',AppPath); // Максимальное количество категорий Reg.WriteInteger('CategoryCount',NumCategories); // Разрешаем все типы Reg.WriteInteger('TypesSupported',EVENTLOG_SUCCESS or EVENTLOG_ERROR_TYPE or EVENTLOG_WARNING_TYPE or EVENTLOG_INFORMATION_TYPE); Reg.CloseKey; EventLog:=RegisterEventSource(nil,PChar(AppName)); Finally Reg.Free; End; //try..finally
End; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!