Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选

首页 / 软件开发 / C++ / 如何读写WINDOWS 2000的日志

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