|
分類:[C#]
2018/06/14(Thu) 19:07:02 編集(投稿者) 2018/06/14(Thu) 19:06:59 編集(投稿者)
はじめまして dobon.netさんのサンプルソースを使用していくつかのイベントログを取得する予定で以下のように ttps://dobon.net/vb/dotnet/system/eventlogentrywritten.html
VS2015 C# .net4.5.2 any CPUで設計しました。
private void Form1_Load(object sender, EventArgs e) { //EventLogオブジェクトの作成 System.Diagnostics.EventLog elog = new System.Diagnostics.EventLog();
//コンピュータ名を指定する //指定しないとローカルコンピュータとなる elog.MachineName = "."; //ログの名前を指定する //指定しないと"Application"となる elog.Log = "Application";
//EntryWrittenイベントを受信するようにする FC_elog.EnableRaisingEvents = true; //イベントハンドラがフォームを作成したスレッドで実行されるようにする FC_elog.SynchronizingObject = this; //EntryWrittenイベントハンドラを追加する FC_elog.EntryWritten += new System.Diagnostics.EntryWrittenEventHandler(elog_EntryWritten);
}
private void elog_EntryWritten( object sender, System.Diagnostics.EntryWrittenEventArgs e) { long id = e.Entry.InstanceId;//イベントIDを保存 if ((id == 2014) || (id == 1015) || (id == 1007)) { //任意の処理 } else { //それ以外の処理(デバッグ用) } }
として作ってみました。 このプログラムを作っているVS2015が入っているノートパソコン (Windows10 Pro )では 予定しているイベントも含め問題なくイベントIDを発生の都度、取得できました。 しかし、他のPCに当該PGをコピーして実行してみるとイベント発生時に上記ソースの「その他の処理(デバッグ用)」が行われました。 じゃあ何のIDによるイベント発生なんだろう?と調査してみると、 たとえば ID=2014を予定していたイベントは 2147485662という値が入っていました。 HEXにすると800007DEです。 下位の「7DE」は10進数にすると2014です。
ID=1015を予定していたイベントは 1073742839という値が入っていました。 HEXにすると400003F7です。 下位の「3F7」は10進数にすると1015です。 なぜか+80000000や+40000000の値が入っていることが判明しました。 他のイベントも皆同じでした。 まったくでたらめな値ではなく符号等?オーバーフロー?が関係しそうな意味ありげな数値になる理由がわからず困っています。 また、PCによって結果が違うのも困っています。
なにかアドバイスを頂けないでしょうか?
|