Microsoft KB Archive/216097

= How To Clear the Windows NT Event Log in Visual Basic =

Article ID: 216097

Article Last Modified on 6/29/2004

-

APPLIES TO


 * Microsoft Visual Basic 4.0 Standard Edition
 * Microsoft Visual Basic 4.0 Professional Edition
 * Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
 * Microsoft Visual Basic 5.0 Learning Edition
 * Microsoft Visual Basic 6.0 Learning Edition
 * Microsoft Visual Basic 5.0 Professional Edition
 * Microsoft Visual Basic 6.0 Professional Edition
 * Microsoft Visual Basic 5.0 Enterprise Edition
 * Microsoft Visual Basic 6.0 Enterprise Edition

-



This article was previously published under Q216097



SUMMARY
Event logging in Windows provides a standard, centralized way for Windows and applications to record important software and hardware events. Event logging also supplies a standard user interface for viewing the logs and a programming interface for examining the logs.

This article illustrates how to clear the Windows NT Event Log with Visual Basic version 4.0 (32-bit) and later. This can be done using the ClearEventLog API call. While Visual Basic 5.0 and later versions have built in functionality for event logging, they do not provide the clearing functionality that the Win32 API does.



MORE INFORMATION
Although the parameter lpBackupFileName of ClearEvent is set to VbNullString, this can be set to a backup filename as well making a separate call to BackupEventLog unnecessary.

The following example illustrates how to clear the local Application Event Log.

Step by Step Example
 Create a project with a Visual Basic form (named Form1) and a command button named cmdClearEventLog.  Add the following code to the Form1 code window: Private Declare Function ClearEventLog Lib "advapi32.dll" Alias "ClearEventLogA" ( _   ByVal hEventLog As Long, _    ByVal lpBackupFileName As String) _ As Long

Private Declare Function CloseEventLog Lib "advapi32.dll" ( _   ByVal hEventLog As Long) _ As Long

Private Declare Function OpenEventLog Lib "advapi32.dll" Alias "OpenEventLogA" ( _   ByVal lpUNCServerName As String, _    ByVal lpSourceName As String) _ As Long

Private Sub cmdClearEventLog_Click Dim hEventLog As Long Dim lretv As Long hEventLog = OpenEventLog(vbNullString, "Application") If hEventLog = 0 Then Debug.Print "OpenEventLog Failed" Exit Sub End If   lretv = ClearEventLog(hEventLog, vbNullString) If lretv = 0 Then Debug.Print "ClearEventLog Failed" Exit Sub End If   lretv = CloseEventLog(hEventLog) If lretv = 0 Then Debug.Print "CloseEventLog Failed" Exit Sub End If

End Sub  Press F5 to run the project, and then the click cmdClearEventLog command button. If you check the Event log, it should be clear.

