如何读写WINDOWS2000的日志

来源: 作者: 2007-12-03 出处:pcdog.com

.net  access  google  iis  qq  
下一页 1 2 3 

源码下载

  一些大型应用程序会把他们的一些事件写到日志里面去,比如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="那句可以省略;


更多内容请看PCdog.com--Windows操作系统安装  Windows常见故障排除  Windows远程桌面的应用专题
下一页 1 2 3 
上一篇:NT DDK的安装以及设备驱动程序的编译
下一篇:WINDOWS NT/2000下如何屏蔽CTRL+ALT+DEL