From 221394670d37a1ac1132c5bcc48a96a328da9128 Mon Sep 17 00:00:00 2001 From: Julian Freeman Date: Tue, 25 Nov 2025 23:22:32 -0400 Subject: [PATCH] add more event log --- src-tauri/src/main.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 2620f75..2559ad6 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -244,11 +244,11 @@ async fn run_diagnosis() -> Result { } } - // 3. 关键日志 (严格模式) + // 3. 关键日志 (严格模式 + 扩展) let mut events = Vec::new(); if let Some(con) = &wmi_con { - // 先按 ID 粗查 - let query = "SELECT TimeGenerated, EventCode, SourceName, Message FROM Win32_NTLogEvent WHERE Logfile = 'System' AND (EventCode = 41 OR EventCode = 18 OR EventCode = 19)"; + // [新增] 增加了 ID 7 (Disk), 1001 (BugCheck), 4101 (Display) + let query = "SELECT TimeGenerated, EventCode, SourceName, Message FROM Win32_NTLogEvent WHERE Logfile = 'System' AND (EventCode = 41 OR EventCode = 18 OR EventCode = 19 OR EventCode = 7 OR EventCode = 1001 OR EventCode = 4101)"; if let Ok(results) = con.raw_query::(query) { // 不在这里 truncate,而是过滤后再截取,保证显示的是真问题 for event in results { @@ -262,6 +262,18 @@ async fn run_diagnosis() -> Result { } else if (event.EventCode == 18 || event.EventCode == 19) && event.SourceName == "Microsoft-Windows-WHEA-Logger" { is_target_event = true; hint = "WHEA 硬件致命错误 (CPU/超频/PCIe)".to_string(); + } else if event.EventCode == 7 && (event.SourceName == "Disk" || event.SourceName == "disk") { + // [新增] 磁盘坏块检测 + is_target_event = true; + hint = "硬盘出现坏道 (Disk Bad Block)".to_string(); + } else if event.EventCode == 1001 && event.SourceName == "BugCheck" { + // [新增] 蓝屏记录 + is_target_event = true; + hint = "系统发生蓝屏死机 (BSOD)".to_string(); + } else if event.EventCode == 4101 && event.SourceName == "Display" { + // [新增] 显卡驱动重置 + is_target_event = true; + hint = "显卡驱动停止响应并已恢复 (TDR)".to_string(); } if is_target_event {