|
|
|
Как получить список системных событий с подробным их описанием?
|
|||
|---|---|---|---|
|
#18+
Не знаю, как написать программу просмотра событий (приложение, безопасность, система). Как получить источник, категорию, тип, ID и описание системного события? Помогите ,чем сможете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 21:56 |
|
||
|
Как получить список системных событий с подробным их описанием?
|
|||
|---|---|---|---|
|
#18+
Не совсем понял, а что вы понимаете под системным событием. К примеру движение мыши - событие, отлавливается хуками. Исключение - тоже событие, в общем случае обрабатывается SEH-ем. Обрабатывать все события от всего не имеет смысла. Что конкретно нужно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 23:46 |
|
||
|
Как получить список системных событий с подробным их описанием?
|
|||
|---|---|---|---|
|
#18+
в Windows XP есть просмотр событий: приложение безопасность система. Все это чудо можно увидеть: Мой компьютер\управление\просмотр событий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 01:04 |
|
||
|
Как получить список системных событий с подробным их описанием?
|
|||
|---|---|---|---|
|
#18+
Вот что у меня уже есть (Borland С++ Builder): #include <vcl.h> #pragma hdrstop #include<stdlib.h> #include<stdio.h> #include<string.h> #include <stddef.h> #include<iostream.h> #include<fstream.h> #include<ctype.h> #include<conio.h> #include<time.h> #include <winsock2.h> #include <windows.h> #include <memory.h> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int stop=0; void scan(char *comp); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- char* PrintTimeGenerated(EVENTLOGRECORD *pevlr) { FILETIME FileTime, LocalFileTime; SYSTEMTIME SysTime; __int64 lgTemp; __int64 SecsTo1970 = 116444736000000000; lgTemp = Int32x32To64(pevlr->TimeGenerated,10000000) + SecsTo1970; FileTime.dwLowDateTime = (DWORD) lgTemp; FileTime.dwHighDateTime = (DWORD)(lgTemp >> 32); FileTimeToLocalFileTime(&FileTime, &LocalFileTime); FileTimeToSystemTime(&LocalFileTime, &SysTime); char bla[100]=""; char st[100]; ltoa(SysTime.wMonth,st,10); strcat(bla,st); strcat(bla,"/"); ltoa(SysTime.wDay,st,10); strcat(bla,st); strcat(bla,"/"); ltoa(SysTime.wYear,st,10); strcat(bla,st); strcat(bla," "); ltoa(SysTime.wHour,st,10); strcat(bla,st); strcat(bla,":"); ltoa(SysTime.wMinute,st,10); strcat(bla,st); strcat(bla,":"); ltoa(SysTime.wSecond,st,10); strcat(bla,st); strcat(bla," "); return bla; } BOOL GetEventUserName(EVENTLOGRECORD *pelr, LPSTR pszUser) { PSID lpSid; char szName[256]; char szDomain[256]; SID_NAME_USE snu; DWORD dwLen; DWORD cbName = 256; DWORD cbDomain = 256; // Point to the SID. lpSid = (PSID)((LPBYTE) pelr + pelr->UserSidOffset); if(pelr->UserSidLength==0){ strcpy( pszUser,"Access denied "); }else if (LookupAccountSid(NULL, lpSid, szName, &cbName, szDomain, &cbDomain, &snu)) {// Return the user's name. strcpy( pszUser, szName ); } else { // Use the error status from LookupAccountSid. return FALSE; } return TRUE; } void DisplayEntries(char vid[100]) { HANDLE h; EVENTLOGRECORD *pevlr; BYTE bBuffer[32000]; DWORD dwRead, dwNeeded, cRecords, dwThisRecord = 0; // Open the Application event log. h = OpenEventLog(NULL, // use local computer vid);//"Application"); // source name if (h == NULL){ Form1->Memo1->Lines->Add("Could not open the Application event log."); Form1->Memo1->Lines->Add(GetLastError()); } pevlr = (EVENTLOGRECORD *) &bBuffer; while (ReadEventLog(h, // event log handle EVENTLOG_FORWARDS_READ | // reads forward EVENTLOG_SEQUENTIAL_READ, // sequential read 0, // ignored for sequential reads pevlr, // pointer to buffer 5000, // size of buffer &dwRead, // number of bytes read &dwNeeded)) // bytes in next record { while (dwRead > 0) { // Print the event identifier, type, and source name. // The source name is just past the end of the // formal structure. char bla[100]=""; strcat(bla,"Event ID: "); char st[256]; ltoa(pevlr->EventID,st,16);//strcat(bla,"0x"); strcat(bla,st);strcat(bla," "); strcat(bla,PrintTimeGenerated(pevlr)); char user[100]; GetEventUserName(pevlr,user); strcat(bla,user); strcat(bla," Type "); ltoa(pevlr->EventType,st,10); strcat(bla,st);strcat(bla," Cat "); ltoa(pevlr->EventCategory,st,10); strcat(bla,st); strcat(bla," "); strcat(bla,(LPSTR) ((LPBYTE) pevlr + sizeof(EVENTLOGRECORD))); Form1->Memo1->Lines->Add(bla); dwRead -= pevlr->Length; pevlr = (EVENTLOGRECORD *) ((LPBYTE) pevlr + pevlr->Length); } pevlr = (EVENTLOGRECORD *) &bBuffer; } CloseEventLog(h); } void __fastcall TForm1::Button2Click(TObject *Sender) { Form1->Memo1->Lines->Clear(); char b1[100]; int c1=Form1->ListBox2->Items->Count; for(int i=0;i<c1;i++) { if(Form1->ListBox2->Selected ==true) { strcpy(b1,Form1->ListBox2->Items->Strings.c_str()); } } DisplayEntries(b1); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { stop=1; } //--------------------------------------------------------------------------- к этому хотелось бы добавить описание событий. Думаю, что их можно как-то связать с идентификаторами событий. только вот как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 01:38 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33759297&tid=2031142]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
61ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
19ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 324ms |

| 0 / 0 |
