投稿日 | : 2005/12/17(Sat) 18:48 |
投稿者 | : 仁志 |
Eメール | : bye070@yahoo.co.jp |
URL | : |
タイトル | : VB6.0によるWindowsイベントログ取得 |
初めましてです。
自分は仁志と申します。さっそく質問なんですが
現在VB6.0でWindowsイベントログを取得しようと奮闘しています。
ですが、イベントログの説明の部分が上手く取れません。
それ以外の部分はうまく取れているのですが。。。。
-------------------------------------------------------------------------
Windows上より取ってきたイベントログ説明(システム)
システムは次の設定のネットワーク アダプタを登録できませんでした:
アダプタ名 : {F5104CA0-4DD4-4BCC-A8FC-5ED4EBCA97A8}
プログラムより取得してきた説明部分
\Device\NetBT_Tcpip_{F5104CA0-4DD4-4BCC-A8FC-5ED4EBCA97A8}
-------------------------------------------------------------------------
と上記のようになってしまいます。
ソースの一部を公開いたしますのでご教授いただければ幸いです。
-------------------------------------------------------------------------
動作環境
OS Windows2000
言語 Visual Basic6.0
-------------------------------------------------------------------------
Public Function GetLog()
Dim hEventLog As Long
Dim typLogRec As EVENTLOGRECORD
Dim lngRet As Long
Dim lngBytesRead As Long
Dim lngMinNumberOfBytesNeeded As Long
Dim bytBuf() As Byte
Dim lngLen As Long
Dim bytEdit() As Byte
Dim intEdit As Integer
Dim strString As String
Erase bytBuf
ReDim bytBuf(0)
ReDim bytBufA(0)
'-- 必要なバッファサイズを取得する
lngRet = ReadEventLog(hEventLog, EVENTLOG_SEQUENTIAL_READ Or EVENTLOG_BACKWARDS_READ, _
0&, bytBuf(0), 0, lngBytesRead, lngMinNumberOfBytesNeeded)
If lngRet = 0& Then
lngLen = lngMinNumberOfBytesNeeded
ReDim bytBuf(lngLen - 1)
'-- イベントログレコードの取得
lngRet = ReadEventLog(hEventLog, EVENTLOG_SEQUENTIAL_READ Or
EVENTLOG_BACKWARDS_READ, _
0&, bytBuf(0), lngLen, lngBytesRead,
lngMinNumberOfBytesNeeded)
CopyMemory typLogRec, bytBuf(0), LenB(typLogRec)
With typLogRec
'-- イベントログレコードの取得
Erase bytEdit
ReDim bytEdit(.DataOffset - .StringOffset)
CopyMemory bytEdit(0), bytBuf(.StringOffset), UBound(bytEdit)
strString = StrConv(bytEdit, vbUnicode)
End With
End With;
END Function
API、EventLogRecordなどの表記もしてあるのですが、上手くいきません。
これは自分の見解なのですが、
取得できるイベントログ説明文は上記のものが限界なのかもしれないと、考えております。
以上になりますが、なにかお分かりのことや、ご指摘していただけることがあればご教授ください。
宜しくお願いします。