Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Event Viever / 16 сообщений из 16, страница 1 из 1
17.07.2005, 05:01:32
    #33170145
Hardman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Доброго времени суток...
Господа, я прошу Вас о помощи, мне надо написать прогу до 15-го июля...
Суть её такова, прога должна читать файл Secevent.evt...
И переводить в удобочитаемый вид, чтобы получались сообщения как в самой проге Event Viever...
Насколько я понял это можно осуществить с помощью Win API функций:

OpenEventLog
ReadEventLog

Для того что бы преобразовать идентификатор в текст сообщения используйте
FormatMessage или
GetEventGategory

BackupEventLog
OpenBackupEventLog
ClearEventLog

Не могли бы вы помочь разобраться как эти функции вызвать в VB6.5 (VB6.0 sp5), по возможности с примером...
Очень надо, просто умоляю мне помочь...
Заранее спасибо тем кто откликнется...
...
Рейтинг: 0 / 0
17.07.2005, 05:03:24
    #33170146
Hardman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Сорьки, напутал, сроки у меня до 1-го Августа...
...
Рейтинг: 0 / 0
17.07.2005, 11:00:29
    #33170164
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
поищите на http://www.planetsourcecode.com
...
Рейтинг: 0 / 0
17.07.2005, 16:34:19
    #33170267
Зелёная
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20571655.html
...
Рейтинг: 0 / 0
18.07.2005, 03:26:56
    #33170406
Hardman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Прошу прощения, я знаю что это мои проблемы, но с английским у меня очень плохо...

Из ссылки столь любезно предоставленной участницой "Зелёная"
The ".evt" files are stored in a binary format.
Microsoft provides a dll "advapi32.dll" that wraps all the functionality required to deal with the event log in the API exported by this DLL.".evt" логи ведутся в бинарном виде, чтобы вызвать нужные АПИ функции нужно подключить библиотеку "advapi32.dll"???


- BackupEventLog: Saves the specified event log to a backup file. Сохраняет указанный лог в бэкап файл, т.е. делает резервную копию логфайла???


ClearEventLog: Clears the specified event log, and optionally saves the current copy of the logfile to a backup file. Очищает указанный лог и делает выборочные сохранения выбранного логфайла в резервную копию. Вторая часть фразы мне вовсе непонятна... *наверное мне никогда не стать переводчиком... =)


- CloseEventLog: Closes a read handle to the specified event log. Закрывает читаемый указанный лог???


- DeregisterEventSource: Closes a write handle to the specified event log. Закрывает указанный правимый лог???


- GetEventLogInformation: Retrieves information about the specified event log. Выдаёт информацию о выбранном логе???


- GetNumberOfEventLogRecords: Retrieves the number of records in the specified event log. Показывает количество записей в логе???


- GetOldestEventLogRecord: Retrieves the absolute record number of the oldest record in the specified event log. *вообще не переводимо... =(((
Отображает последнюю запись в выбранном логе???



- NotifyChangeEventLog: Enables an application to receive notification when an event is written to the specified event logfile. *Ух...
Включает оповещение если выбранный лог был изменён???


- OpenBackupEventLog: Opens a handle to a backup event log. Открытие резервной копии???


- OpenEventLog: Opens a handle to an event log. Открывает лог???
Но где??? Записывает в переменную???



- ReadEventLog: Reads a whole number of entries from the specified event log. Считывает целое число из выбранного лога???


- RegisterEventSource: Retrieves a registered handle to an event log. Находит зарегистрированный случай в логе???


- ReportEvent: Writes an entry at the end of the specified event log.Правит начало и конец выбранного лога???




Господа, и конечно дамы, пожалуйста не отворачивайтесь от меня, протяните руку помощи, я стараюсь понять но пока без особых успехов...

Уважаемая "Зелёная", Ваша ссылка действительно очень информативна, но к сожалению в силу некоторых сложностей с английским языком я почерпнул из неё очень мало...

Я так и не понял как подключить библиотеку "advapi32.dll", и каким образом вызываются апи функции...
По логике после вызова функции данные заносятся в указанные переменные...
Пожалуйста привидите пример, хотябы строчку...

В силу языковых сложностей, пожалуйста не отсылайте меня на сайт микрософта, мсдн на русском языке нету, а на английском я не понимаю...

Я бы Вас не напрягал с просьбами о помощи но мне поставили сроки...
Если Вам не охота возиться с чайником, хотябы подскажите ресурсы по данной теме, а вдру что пойму...
Если вдруг Вам покажется что я пытаюсь свалить на Вас свои проблемы, а сам ничего не ищу и не работаю, уверяю Вас это не так...
Из-за малых сроков работаю по ночам, сплю по четыре часа и ем по бутерброду с чаем... =)))
Не ругайте если что не так...
Надеюсь на Ваше понимание и помощь...
Искренне Ваш Hardman.
...
Рейтинг: 0 / 0
18.07.2005, 03:39:54
    #33170407
Hardman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
big-dukeпоищите на http://www.planetsourcecode.com
Спасибо за ссылку, но ничего похожего пока не нашёл, быть может в силу проблемы с английским...
По возможности, будте добры, подскажите как ещё можно задать запрос для поиска???
Event Viever - не дал результатов...
.evt - не дал результатов...
Event - Очень много подробно просмотреть всё не успел...
API - Очень много подробно просмотреть всё не успел...
LOG - Очень много подробно просмотреть всё не успел...
...
Рейтинг: 0 / 0
18.07.2005, 03:56:52
    #33170410
Синий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Декларации функций для VB на http://www.relib.com/vb/api.asp?t=p&q=O
В принципе, из того, что в скобочках можно многое понять, но, постараюсь поискать еще...
...
Рейтинг: 0 / 0
18.07.2005, 04:04:59
    #33170411
Синий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Вот... На русском... Правда не для VB, но в целом подход к данной проблематике...

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=530

http://www.delphikingdom.ru/asp/viewitem.asp?UrlItem=/mastering/eventviewer.htm

http://www.sql.ru/forum/actualthread.aspx?tid=99241

http://www.gotdotnet.ru/Forums/Common/176005.aspx

http://forum.ru-board.com/topic.cgi?forum=31&topic=0347

http://subscribe.ru/archive/comp.soft.win.windnt/200312/01172515.text

http://www.imho.ws/showthread.php?t=63674

З.Ы. Найдено в гугле по "OpenEventLog" с оптионбаттаном "Искать в русском".
З.Ы.2. Если впустую потратил Ваше время - прошу простить... Из добрых побуждений делалось...
...
Рейтинг: 0 / 0
18.07.2005, 13:27:44
    #33171246
Некий РоЛЛ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Др. Тяжкий, ты что переводчиком не можешь воспользоваться....?!
...
Рейтинг: 0 / 0
18.07.2005, 13:50:53
    #33171328
Hardman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Некий РоЛЛДр. Тяжкий, ты что переводчиком не можешь воспользоваться....?!
Уважаемый, я переводчиком пользуюсь...
Лингво для этого вполне подходит...
И меня простите зовут не тяжкий...
И попрошу Вас впредь меня так не называть...
...
Рейтинг: 0 / 0
18.07.2005, 19:57:32
    #33172222
under
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Прошу прощения, я знаю что это мои проблемы, но с английским у меня очень плохо...

Конечно плохо... :) это ж сразу видно!!! Форумчане, как вам не стыдно??
Разве не понятно если человек пишет "Vie v er", а не "Vie w er", то он плохо знает английский.
...
Рейтинг: 0 / 0
21.07.2005, 18:36:15
    #33178860
Hardman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Leo Mac Roll, наше личное знакомство не даёт Вам права смеяться надо мной...
Вы конечно же в отличии меня закончили учиться, и уже получили свой диплом...
Но насколько я понимаю рисковали Вы со всеми, и вырвались лишь потому что наплевали на остальных...
так же хочу заметить что Вы всегда были ленивы в отношении самостоятельного обучения, вспомнить хотя бы тот вечер когда я за два часа написал програмку которая использовала стандартную команду "NET SEND", и во многом упрощала обмен информацией с уважаемым Ace Hart-ом...
Он тут же поддержал идю и предоставил графические ресурсы для программы, а Вы как я помню также поддавшись общему движению купили самоучитель по Visual Basic 6.0, (кстати протрите пыль с книги)...
Так какое право Вы имеете смеяться надо мной в моих начинаниях, да я задаю глупые вопросы, и быть может даже и не прав что их задаю, но если это так то можно об этом спокойно и вежливо сказать...
Вместо этого вы исказили мой ник-нэйм, посоветовали воспользоваться переводчиком (кстати после ночи проведённой с ним), что я воспринимаю как злую насмешку...
Ваше поведение за последнее время не нравится не только мне одному но и нашим общим знакомым...


Уважаемый "Синий", спасибо за ссылки, много полезной информации, есть предпосылки к альтернативному решению моей задачи...


Господа, продолжая изучать вопрос продолжу и сам вопрос...
По ссылке столь любезно выложенной уважаемой "Зелёная", есть следущая информация:

Declare Function OpenEventLog Lib "advapi32" Alias "OpenEventLogA" _
(ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long

Declare Function GetNumberOfEventLogRecords Lib "advapi32.dll" _
(ByVal hEventLog As Long, NumberOfRecords As Long) As Long

Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" _
(ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, _
lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, pnBytesRead As Long, _
pnMinNumberOfBytesNeeded As Long) As Long


Declare Function NetServerEnum Lib "Netapi32" (vComputerName As Any, ByVal lLevel As Long, _
vBuffer As Any, lPreferedMaxLen As Long, lEntriesRead As Long, lTotalEntries As Long, _
vServerType As Any, ByVal sDomain As String, vResume As Any) As Long



Public Declare Function GetOldestEventLogRecord Lib "advapi32.dll" _
(ByVal hEventLog As Long, OldestRecord As Long) As Long


Private Type EVENTLOGRECORD
Length As Long ' Length of full record
Reserved As Long ' Used by the service
RecordNumber As Long ' Absolute record number
TimeGenerated As Long ' Seconds since 1-1-1970
TimeWritten As Long 'Seconds since 1-1-1970
EventID As Long
EventType As Integer
NumStrings As Integer
EventCategory As Integer
ReservedFlags As Integer ' For use with paired events (auditing)
ClosingRecordNumber As Long 'For use with paired events (auditing)
StringOffset As Long ' Offset from beginning of record
UserSidLength As Long
UserSidOffset As Long
DataLength As Long
DataOffset As Long ' Offset from beginning of record
End Type

Public Enum enmEventType
EVENTLOG_SUCCESS = &H0&
EVENTLOG_ERROR_TYPE = &H1&
EVENTLOG_WARNING_TYPE = &H2&
EVENTLOG_INFORMATION_TYPE = &H4&
EVENTLOG_AUDIT_SUCCESS = &H8&
EVENTLOG_AUDIT_FAILURE = &H10&
End Enum
Private Const EVENTLOG_SEQUENTIAL_READ As Long = &H1
Private Const EVENTLOG_SEEK_READ As Long = &H2
Private Const EVENTLOG_FORWARDS_READ As Long = &H4
Private Const EVENTLOG_BACKWARDS_READ As Long = &H8

Dim hEventLog
Dim rtnReadEvent
Dim lngReadFlags As Long ' Flags used to read the event log
Dim lngNumBytesToRead As Long ' Number of bytes TO read from event log
Dim lngNumBytesRead As Long ' Number of bytes actually READ from event log
Dim lngNumRecords As Long ' Total number of records in this event log
Dim lngMinBytesNeeded As Long ' Used in ReadEventLog API call
Dim lngRtn As Long
Dim typEventRecAPI As EVENTLOGRECORD
Dim lngLoop As Long

Private Sub Command1_Click()

lngNumBytesToRead = 1700

hEventLog = OpenEventLog(vbNullString, "application")
'MsgBox hEventLog
lngReadFlags = EVENTLOG_FORWARDS_READ Or _
EVENTLOG_SEQUENTIAL_READ

rtnReadEvent = ReadEventLog(hEventLog, _
lngReadFlags, _
lngLoop, _
typEventRecAPI, _
lngNumBytesToRead, _
lngNumBytesRead, _
lngMinBytesNeeded)
MsgBox lngNumBytesRead

End Sub

Скопировал, запустил, выдаёт ошибку с следущим коментарием:
"Compile error:
Constants, fixed-length strings, arrays, user-defined typesand Declare statements not allowed as Public members of object modules"

Подскажите что я сделал не так пожалуйста...
Как я не изменял код ничего не вышло...
Быть может я не туда вставил сам код???
Весь код кроме Private Sub Command1_Click у меня в General Declarations...
...
Рейтинг: 0 / 0
21.07.2005, 20:18:50
    #33178985
Синий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Весь код надо разместить в "Модуле", а не в "Модуле Класса", как получилось по всей видимости у Вас.
...
Рейтинг: 0 / 0
21.07.2005, 20:38:08
    #33178997
Hardman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Уважаемый "Синий", благодарю за помощь и отдельно благодарю за оперативность...
Действительно добавил в проект модуль, и перенёс в него всё кроме обработки события нажатия кнопки...
После нажатия на которую теперь появляется MsgBox который выдаёт результат "0", теперь мне осталось разобраться в самом коде и что за нуль возвращает эта программа...
...
Рейтинг: 0 / 0
22.07.2005, 01:27:42
    #33179184
Зелёная
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
Для того что бы узнать какая функция API в какой библиотеке находится надо:
Запустить "C:\Program Files\Microsoft Visual Studio\Common\Tools\Winapi\APILOAD.EXE"
В меню File выбрать фаил C:\Program Files\Microsoft Visual Studio\Common\Tools\Winapi\win32API.txt
Ввести имя функции, ну а дальше должно быть понятно.



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
Option Explicit
Private Declare Function OpenEventLog Lib "advapi32.dll" Alias "OpenEventLogA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long

Private Declare Function GetOldestEventLogRecord Lib "advapi32.dll" (ByVal hEventLog As Long, OldestRecord As Long) As Long
Private Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" (ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Long, pnBytesRead As Long, pnMinNumberOfBytesNeeded As Long) As Long
Private Declare Function CloseEventLog Lib "advapi32.dll" (ByVal hEventLog As Long) As Long



Private Type EVENTLOGRECORD
Length As Long ' Length of full record
Reserved As Long ' Used by the service
RecordNumber As Long ' Absolute record number
TimeGenerated As Long ' Seconds since 1-1-1970
TimeWritten As Long 'Seconds since 1-1-1970
EventID As Long
EventType As Integer
NumStrings As Integer
EventCategory As Integer
ReservedFlags As Integer ' For use with paired events (auditing)
ClosingRecordNumber As Long 'For use with paired events (auditing)
StringOffset As Long ' Offset from beginning of record
UserSidLength As Long
UserSidOffset As Long
DataLength As Long
DataOffset As Long ' Offset from beginning of record
End Type

Public Enum enmEventType
EVENTLOG_SUCCESS = &H0&
EVENTLOG_ERROR_TYPE = &H1&
EVENTLOG_WARNING_TYPE = &H2&
EVENTLOG_INFORMATION_TYPE = &H4&
EVENTLOG_AUDIT_SUCCESS = &H8&
EVENTLOG_AUDIT_FAILURE = &H10&
End Enum
Private Const EVENTLOG_SEQUENTIAL_READ As Long = &H1
Private Const EVENTLOG_SEEK_READ As Long = &H2
Private Const EVENTLOG_FORWARDS_READ As Long = &H4
Private Const EVENTLOG_BACKWARDS_READ As Long = &H8

Dim hEventLog
Dim rtnReadEvent
Dim lngReadFlags As Long ' Flags used to read the event log
Dim lngNumBytesToRead As Long ' Number of bytes TO read from event log
Dim lngNumBytesRead As Long ' Number of bytes actually READ from event log
Dim lngNumRecords As Long ' Total number of records in this event log
Dim lngMinBytesNeeded As Long ' Used in ReadEventLog API call
Dim lngRtn As Long
Dim typEventRecAPI As EVENTLOGRECORD
Dim lngLoop As Long

Private Sub Command1_Click()
Dim Path As String
Dim lRecordNumber As Long

Path = "C:\WINDOWS\system32\config\SecEvent.Evt"

lngNumBytesToRead =  255 


hEventLog = OpenEventLog(vbNullString,  'Path)
 GetOldestEventLogRecord lEventLogHwd, lRecordNumber


'MsgBox hEventLog
lngReadFlags = EVENTLOG_FORWARDS_READ Or _
EVENTLOG_SEQUENTIAL_READ

rtnReadEvent = ReadEventLog(hEventLog, _
lngReadFlags, _
 0 , _
typEventRecAPI, _
lngNumBytesToRead, _
lngNumBytesRead, _
lngMinBytesNeeded)
'MsgBox lngNumBytesRead

End Sub
...
Рейтинг: 0 / 0
22.07.2005, 01:30:03
    #33179185
Зелёная
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Event Viever
До 1 августа времени много, если не разберетесь пишите.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Event Viever / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]