一些大型應用程式會把他們的一些事件寫到日誌裡面去,比如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);