VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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などの表記もしてあるのですが、上手くいきません。
これは自分の見解なのですが、
取得できるイベントログ説明文は上記のものが限界なのかもしれないと、考えております。
以上になりますが、なにかお分かりのことや、ご指摘していただけることがあればご教授ください。

宜しくお願いします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -