イベントビューアから指定のログを取得したいのですが
下記のerがなぜかnullになります。eReaderにはしっかりEventLogReaderも入っています。
ー環境ー
VS2013 C# .net
string section = "System";
//Systemイベントを指定する
string queryString = "";
using (StreamReader sr = new StreamReader("readme.xml", Encoding.GetEncoding("Shift_JIS")))
{
queryString = sr.ReadToEnd();
}
//上記の条件でEventLogQueryを初期化し、EventLogReaderを介して、EventRecordを読み込みます。
EventLogQuery eQuery = new EventLogQuery(section, PathType.LogName, queryString);
EventLogReader eReader = new EventLogReader(eQuery);
EventRecord er = eReader.ReadEvent();
No.1ベストアンサー
- 回答日時:
EventLogReader.ReadEventメソッドのマニュアル
https://msdn.microsoft.com/ja-jp/library/bb36089 …
には特に明記されていませんが
> このクラスを使用するコード例については、「How To: Query for Events」を参照してください。
の「How To: Query for Events」にあるサンプルコードを読むと
「ReadEventがnullを返すまでループを繰り返す」
というアルゴリズムになっています。
そこから予想するに
> このオブジェクト内のイベント クエリから返される次のイベントを読み取ります。
> 戻り値
> 型: System.Diagnostics.Eventing.Reader.EventRecord
> EventRecord オブジェクトを返します。
に
「次のイベントが読み取れない場合は、nullを返します」
が抜けていると考えてよいでしょう。
> EventRecord er = eReader.ReadEvent();
で代入していますが「 eReader.ReadEvent()」がnullを返すケースもある、ということです。
queryStringが期待したものになっていない、とかがあるのではないでしょうか
そうだったのですか!!
そのような気もしてきていたところでしたので腑に落ちました。
いつもご回答ありがとうございます。
kmee様の知見の広さには驚かされるばかりですが、やはり地道に勉強していくしかないのでしょうね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- アプリ Android studio 初心者 Hello Android!しか表示されない 1 2023/08/01 08:47
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
エクセルのデータをwebフォーム...
-
桐V9での値の取得
-
<OBJECT>タグからJavascript呼...
-
エクセルVBAでセル番地を指定し...
-
ACCESSマクロ、Me![氏名] その...
-
「SHDocVw」の意味
-
【エクセル】複数のTextBoxに共...
-
Excel VBAでマウスの左クリック...
-
日本語の文字化けを直す方法
-
ディスクの総セクタサイズを取...
-
Access からオブジェクトとして...
-
VBAで選択範囲外の図形(オブジ...
-
ExcelのシートをAccessで表示し...
-
VBAでフォームのコントロールの...
-
VB.NET Image型データをファイ...
-
Bitmap.GetPixelより高速なもの
-
コードでオブジェクトを最前面に
-
EXCEL VBA ユーザフォームで複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスVBAのMe!と[ ]
-
VBA エンターキーでイベントに...
-
Excel VBAでマウスの左クリック...
-
文字列で小数点以下の0を削除し...
-
【エクセルのマクロ】クリップ...
-
エクセルVBAでセル番地を指定し...
-
Excel2007 でのチェックボック...
-
Accessのフォーム上にエクセル...
-
日本語の文字化けを直す方法
-
エクセルのデータをwebフォーム...
-
現在アクティブになっているオ...
-
PowerpointVBAで指定のShapeオ...
-
コードでオブジェクトを最前面に
-
【エクセル】複数のTextBoxに共...
-
Imageコントロールにグラフを表...
-
ユーザーフォームのインポート...
-
Access からオブジェクトとして...
-
構造体の静的な初期化
-
Excel VBA でPictureBoxオブジ...
-
「SHDocVw」の意味
おすすめ情報
言い忘れましたが
なぜnullになってしまうのか
考えられる原因を知りたいのです。
わかる方いらっしゃいましたらご回答お願いします。
『オブジェクトの現在の状態に問題があるため、操作は有効ではありません。』
とエラーを吐かれているのが現状であり、その原因が上記のことにあるのではと
考えています。