| ²é¿´: 140 | »Ø¸´: 0 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
zsgllyľ³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
ÈçºÎ¶ÁдWINDOWS2000µÄÈÕÖ¾
|
||
|
һЩ´óÐÍÓ¦ÓóÌÐò»á°ÑËûÃǵÄһЩʼþдµ½ÈÕÖ¾ÀïÃæÈ¥,±ÈÈçsql server,norton,iisµÈ.ÎÒgoogleÁËÒ»ÏÂ, ÍøÉϹØÓÚÕâ·½ÃæµÄ×ÊÁϲ¢²»ÊǺÜÍêÕû,ÓÚÊÇÕûÀí¼Ó¹¤ÁËÒ»ÏÂ. ÏÂÃæÊÇÎÒ¿´msdn,ÓÃgoogle¼°×Ô¼ºÃþË÷µÃµ½µÄÒ»µã Ìå»á,¹²Ïí. Ò».×¢²áʼþÔ´.(ÐèÒÔadministratorµÇ½±¾»ú²ÅÐÐ) ÄãÐèҪΪÄãµÄÓ¦ÓóÌÐò×¢²áÒ»¸öʼþÔ´,ÒÔ±íÃ÷ÄÇЩÊÇÊôÓÚÄãÓ¦ÓóÌÐòµÄʼþ. HKEY hk; ULONG disposition, allowed; char szName[256]; strcpy(szName,"SYSTEM\\CurrentControlSet\\Services\\Eventlog\\Application\\" ; strcat(szName,"CMCard" ; if (RegCreateKeyEx(HKEY_LOCAL_MACHINE,szName,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, NULL,&hk,&disposition))//ΪʼþÔ´½¨Ò»¸ö¼ü { printf("Unable to create registry key" ; return; } strcpy (szName,"%SystemRoot%\\System\\MYDLL.DLL" ; if(RegSetValueEx(hk,"EventMessageFile",0,REG_EXPAND_SZ,(LPBYTE)szName,strlen(szName)+1)) {//ΪʼþÔ´Ö¸¶¨Ò»¸ö½âÊÍʼþµÄʼþdll. printf("Unable to create/set registryvalue (message DLL name)" ; return; } allowed=EVENTLOG_ERROR_TYPE|EVENTLOG_WARNING_TYPE|EVENTLOG_INFORMATION_TYPE; if (RegSetValueEx(hk,"TypesSupported",0,REG_DWORD,(LPBYTE)&allowed,sizeof(DWORD))) {//ΪʼþÔ´Ö¸¶¨ÀàÐÍ printf("Unable to create/set registry value (message types)" ; return; } RegCloseKey(hk); ¶þ.±àдʼþdll.(ÓÃÓÚ½âÊÍʼþid±íʾµÄÄÚÈÝ) ÓÃmc.exe(vc×Ô´ø)±àÒëÒ»¸ö*.mcÎļþ,Éú³É*.h,*.rc,*.bin,ÔÙÓÃËûÃÇÉú³ÉÒ»¸ö×ÊÔ´dll(ÓÃvcÉú³ÉÒ»¸ö¿Õ win32dll¿ò¼Ü,°ÑËûÃǼӽøÀ´±àÒë),·ÅsystemĿ¼ÏÂ. ÏÂÃæÊÇÒ»¸ömcÎļþµÄÑù°å:;//begin============================================================== ;#ifndef __CMCARD_H__ ;#define __CMCARD_H__ LanguageNames=(Chinese=2052:MSG0052) SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS Informational=0x1:STATUS_SEVERITY_INFORMATIONAL Warning=0x2:STATUS_SEVERITY_WARNING Error=0x3:STATUS_SEVERITY_ERROR ) MessageId=1000 Severity=Success SymbolicName=CM_CARD_STATUS_OK Language=Chinese CMCardµÄ״̬Á¼ºÃ. . MessageId=1001 Severity=Success SymbolicName=CM_CARD_STATUS_BED Language=Chinese CMCard³ö´íÁË,ÔÒò¿ÉÄÜÊÇ%1. . ;#endif //__CMCARD_H__ ;//end================================================================ ˵Ã÷:ĬÈϵÄÓïÑÔÊÇÓ¢Óï,´Ëʱ"LanguageNames="ÄǾä¿ÉÒÔÊ¡ÂÔ; %1±íʾ´ÓReportEvent´«À´µÄ²ÎÊý; ×¢Òâ×¢ÊÍʱ";"Óë";//"µÄ²»Í¬Ó÷¨.mc±àÒëÆ÷»áºöÂÔ";"ºóÃæµÄ×Ö·û,µ«»á°ÑËûÃÇдµ½*.hÎļþÀï. Èý.дÈÕÖ¾µÄ·½·¨. //vc BOOL syslog(DWORD dwID,char*str,WORD wType)//²ÎÊý:ʼþid;ʼþ¸½¼ÓÐÅÏ¢;ʼþÀàÐÍ { HANDLE hd=RegisterEventSource(NULL,"CMCard" ;//Ö¸¶¨/´ò¿ªÊ¼þÔ´ char* buff[1]; buff[0]=str; int i; if(hd){ i=ReportEvent(hd,wType,0,dwID,NULL,1,0,(LPCTSTR*)buff,NULL);//дÈÕÖ¾ DeregisterEventSource(hd);//¹Ø±ÕʼþÔ´ if(i)return TRUE; } return FALSE; } ''vb Private Declare Function ReportEvent Lib "advapi32" Alias "ReportEventA" (ByVal hEventLog As Long, _ ByVal wType As Long, ByVal wCategory As Long, ByVal dwEventID As Long, ByVal lpUserSid As Long, _ ByVal wNumStrings As Long, ByVal dwDataSize As Long, lpStrings As Any, lpRawData As Any) As Long ''×¢ÒâÕâ¸öÉùÃ÷,Óëapi text viewerµÄÊDz»Í¬µÄ.×¢ÒâAs AnyµÄÃîÓÃ. Function sysLog(byval lngID as long,byval strMsg As String,byval lngType as long) As Boolean Dim hd As Long Dim ret As Integer hd = RegisterEventSource("", "CMCard" If hd <> 0 Then ret = ReportEvent(hd, lngType, 0, lngID, 0&, 1, 0, strMsg, 0) DeregisterEventSource hd End If If ret <> 0 Then sysLog = True Else: sysLog = False End If End Function ËÄ .¶ÁÈÕÖ¾µÄÀý×Ó. void CEventDlg::OnButton3() {//²Î¿¼http://www.codeproject.com/system/sysevent.asp HANDLE hdle; EVENTLOGRECORD *ptr; BYTE buff[4096]; DWORD read_len, next_len; ptr=(EVENTLOGRECORD *)&buff; hdle=OpenEventLog("", "Application" ;// System if (hdle==NULL) { MessageBox("´ò¿ªÈÕ־ʧ°Ü" ; } else { long mRet; char lpszSourceName[255]={0}; char lpszComputerName[255]={0}; unsigned uStepOfString; char* pStrings; char szExpandedString[1024]={0}; while(ReadEventLog(hdle,EVENTLOG_FORWARDS_READ|EVENTLOG_SEQUENTIAL_READ, 1,ptr,sizeof(buff),&read_len,&next_len)) { mRet=ptr->EventID;//ʼþid mRet=ptr->EventType;//ʼþÀàÐÍ mRet=ptr->TimeWritten;// mRet=ptr->NumStrings;// mRet=ptr->Length;// mRet=sizeof(EVENTLOGRECORD); strcpy(lpszSourceName, (LPTSTR)((LPBYTE)ptr +mRet));//ʼþÔ´ mRet+= strlen(lpszSourceName) + 1; strcpy(lpszComputerName, (LPTSTR)((LPBYTE)ptr + mRet));//»úÆ÷Ãû mRet+= strlen(lpszComputerName) + 1; if(ptr->UserSidLength>0){;}// mRet=ptr->DataOffset-ptr->StringOffset; if(mRet>0)//ʼþÃèÊö { pStrings=new char[mRet]; memcpy(pStrings,(LPBYTE)ptr+ptr->StringOffset,mRet); uStepOfString=0; for(int x=0;x { if(x==0) { strcpy(szExpandedString, (TCHAR *)pStrings + uStepOfString); if(x<(UINT)ptr->NumStrings - 1)strcat(szExpandedString, "," ; } else strcat(szExpandedString, pStrings + uStepOfString); uStepOfString = strlen(pStrings + uStepOfString) + 1; } delete [] pStrings; } MessageBox(lpszSourceName,szExpandedString); } CloseEventLog(hdle); } } Îå.Ô´´úÂëµÄʹÓÃÓëÔËÐнá¹û ±¾Îĸ½´øµÄʾÀý¹¤³Ì¶ÔWIN2KÈÕÖ¾µÄ¶Áд½øÐÐÁËÑÝʾ£¬Ê¹ÓÃʱÏȱàÒëmydll,²¢¿½±´µ½systemĿ¼ÏÂ,È»ºó±àÒëevent¹¤³Ì¡£ÔËÐнá¹û¿ÉÒÔʹÓÃʼþ²é¿´Æ÷²é¿´£º ¼ÙÈçÔÚÖ¸¶¨µÄλÖÃûÓÐÕÒµ½mydll£¬Ôò»áÏÔʾ: ʼþ ID ( 1001 )µÄÃèÊö(ÔÚ×ÊÔ´( CMCard )ÖÐ)ÎÞ·¨ÕÒµ½¡£±¾µØ¼ÆËã»ú¿ÉÄÜûÓбØÒªµÄ×¢²áÐÅÏ¢»òÏûÏ¢ DLL ÎļþÀ´´ÓÔ¶¶Ë¼ÆËã»úÏÔʾÏûÏ¢¡£²¿·Öʼþ°üº¬ÁËÏÂÁÐÐÅÏ¢: king_koo Hello!. Áù.ºó¼Ç ÒÔÉÏÑÝʾÁ˶Áдwin2kÈÕÖ¾µÄ»ù±¾·½·¨,ÖØÔÚÓ¦ÓÃ.ÏëÖªµÀ¸üÀíÂÛ/¸üÏ꾡µÄ¶«Î÷,¾ÍÖ»ÓÐÔÙÈÏÕæÑо¿msdnÁË. Áí:¶ÁÈÕÖ¾ºÃÂé·³,ËÖªµÀ¸ü¼ò½ÝµÄ·½·¨Âé·³¸æËßÎÒÒ»Éù.»¶ÓÖ¸µã/ÅúÆÀ(king_koo@163.net) [ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-29 at 07:42 ] |
» ²ÂÄãϲ»¶
085600 Ó¢Ò»Êý¶þ272Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´
²ÄÁÏ284Çóµ÷¼Á£¬Ò»Ö¾Ô¸Ö£ÖÝ´óѧӢһÊý¶þר˶
ÒѾÓÐ12È˻ظ´
»¯Ñ§£¬²ÄÁÏ£¬»·¾³ÀàÇóµ÷¼Á
ÒѾÓÐ3È˻ظ´
²ÄÁÏ»¯¹¤µ÷¼Á
ÒѾÓÐ14È˻ظ´
½ÓÊÕµ÷¼Á
ÒѾÓÐ3È˻ظ´
»¯¹¤¾©Çø271Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
295Çóµ÷¼Á¡£Ò»Ö¾Ô¸±¨¿¼Ö£ÖÝ´óѧ»¯Ñ§¹¤ÒÕѧ˶£¬×Ü·Ö295·Ö
ÒѾÓÐ5È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
0856»¯¹¤×¨Ë¶Çóµ÷¼Á
ÒѾÓÐ15È˻ظ´
303Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´














;
»Ø¸´´ËÂ¥