2013-10-08 3 views
1

Журналы событий Windows обычно хранятся в %SystemRoot%\System32\winevt\Logs. Все файлы представляют собой какие-то базы данных, я хочу спросить, как программные данные могут быть перечислены из *.evt и *.evtx файлов в отдельные записи и как эти записи могут быть удалены из системы.Как перечислять и удалять события Windows?

Я нашел Windows Event Log Functions, однако я ищу решение, которое работает на XP. Последнее на проверенных Event Logging Functions. Используя этот API, мне удалось прочитать данные как отдельные записи, однако есть только одна функция для удаления, это ClearEventLog. Однако это исключает все события из журналов. Я ищу решение, где я мог бы удалить одну запись.

Важное примечание: Я программирую на C++, поэтому решения C# и .net не помогают, также мне нужна совместимость с Windows-XP.

ответ

2

API для чтения из журналов событий существует.

  • OpenEventLog function - открывает дескриптор указанного журнала событий
  • ReadEventLog функцию - Считывает заданное количество записей из указанного журнала событий. Функция может использоваться для чтения записей журнала в хронологическом или обратном хронологическом порядке.
  • Querying for Event Information показывает, как открыть журнал событий, просмотреть события из журнала, распечатать информацию о событиях и закрыть журнал событий.
  • Event Logging Functions - АНИ сам
+0

Спасибо, также [здесь] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa363654%28v=vs.85%29. aspx) можно найти полный список процедур API. – ST3

+0

Кроме того, забавная вещь, которую вы можете сделать, это резервное копирование журнала событий во внешний файл. Такой файл .EVT может быть передан для внешнего/автономного просмотра. –

+0

Эй, еще один вопрос об этом, вы дали ссылку на какой-то API. Теперь у меня есть полностью работающий механизм сканирования, однако этот API имеет функцию 'ClearEventLog', это удаляет все данные в каком-то журнале событий, знаете ли вы что-то, чтобы удалить одну запись? – ST3

Смежные вопросы