WEB开发网
开发学院软件开发VC 如何读写WINDOWS 2000的日志 阅读

如何读写WINDOWS 2000的日志

 2010-08-22 20:47:27 来源:WEB开发网   
核心提示:一些大型应用程序会把他们的一些事件写到日志里面去,比如sql server,norton,iis等.我google了一下,网上关于这方面的资料并不是很完整,于是整理加工了一下. 下面是我看msdn,用google及自己摸索得到的一点体会,共享.一.注册事件源.(需以administrator登陆本机才行)你需要为你的应

一些大型应用程序会把他们的一些事件写到日志里面去,比如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);

1 2 3 4  下一页

Tags:如何 读写 WINDOWS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接