{"record":{"id":"74b133b4273f1e34","repo":"babalae/better-genshin-impact","slug":"16-9-74b133","errorCode":null,"errorMessage":"游戏窗口分辨率不是 16:9","messagePattern":"游戏窗口分辨率不是 16:9","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"BetterGenshinImpact/GameTask/AutoBoss/AutoBossTask.cs","lineNumber":1064,"sourceCode":"        yield return $\"{bossName}前往.json\";\n\n        if (AutoBossData.IsTalkToStartBoss(bossName))\n        {\n            yield return $\"{bossName}战斗后快速前往.json\";\n        }\n    }\n\n    /// <summary>\n    /// 校验当前游戏窗口是否满足自动首领讨伐所需的 16:9 分辨率。\n    /// </summary>\n    /// <exception cref=\"Exception\">游戏窗口不是 16:9 时抛出。</exception>\n    private void LogScreenResolution()\n    {\n        var gameScreenSize = SystemControl.GetGameScreenRect(TaskContext.Instance().GameHandle);\n        if (gameScreenSize.Width * 9 != gameScreenSize.Height * 16)\n        {\n            _logger.LogError(\"游戏窗口分辨率不是 16:9 ！当前分辨率为 {Width}x{Height}\", gameScreenSize.Width, gameScreenSize.Height);\n            throw new Exception(\"游戏窗口分辨率不是 16:9\");\n        }\n\n        if (gameScreenSize.Width < 1920 || gameScreenSize.Height < 1080)\n        {\n            Logger.LogWarning(\"游戏窗口分辨率小于 1920x1080 ！当前分辨率为 {Width}x{Height} , 小于 1920x1080 的分辨率的游戏可能无法正常使用自动首领功能 !\",\n                gameScreenSize.Width, gameScreenSize.Height);\n        }\n    }\n\n    /// <summary>\n    /// 回到主界面并按配置尝试切换到指定队伍。\n    /// </summary>\n    private async Task Prepare()\n    {\n        await _returnMainUiTask.Start(_ct);\n\n        if (string.IsNullOrWhiteSpace(_taskParam.TeamName))\n        {","sourceCodeStart":1046,"sourceCodeEnd":1082,"githubUrl":"https://github.com/babalae/better-genshin-impact/blob/a7cb36712dcb409be610257d877fcea3597e9d6b/BetterGenshinImpact/GameTask/AutoBoss/AutoBossTask.cs#L1046-L1082","documentation":"LogScreenResolution 用 SystemControl.GetGameScreenRect 取游戏窗口尺寸，校验 Width:Height == 16:9（Width*9 == Height*16），不满足即 LogError 后抛 Exception。自动首领讨伐的坐标/OCR 假设 16:9 画布，非该比例会导致所有缩放坐标错位。","triggerScenarios":"游戏窗口设为非 16:9 分辨率（如 1920×1200、2560×1080 之外的异形比例、窗口被拉伸）；获取到的句柄不是游戏主窗口；多显示器 DPI 缩放导致尺寸异常。","commonSituations":"用户改了游戏分辨率；窗口模式拉伸；DPI 缩放使 GetGameScreenRect 返回逻辑尺寸不符；后台/多开场景句柄错误。","solutions":["将游戏设为 16:9 分辨率（如 1920×1080、1280×720）。","确保窗口未被拉伸（使用原生或全屏 16:9）。","关闭系统 DPI 缩放对游戏的影响，或确认 GetGameScreenRect 返回物理像素。","确认 TaskContext 中 GameHandle 指向正确的游戏窗口。"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"var size = SystemControl.GetGameScreenRect(TaskContext.Instance().GameHandle);\nbool is169 = size.Width * 9 == size.Height * 16;\n// UI 启动前预检并提示用户调整分辨率","typeGuard":null,"tryCatchPattern":null,"preventionTips":["游戏固定使用 16:9 分辨率（1920×1080 等）。","避免窗口拉伸与 DPI 缩放干扰。","确认 GameHandle 指向正确游戏窗口。"],"tags":["validation","resolution","environment","genshin","autoboss"],"backgroundTag":null,"analyzedSha":"a7cb36712dcb409be610257d877fcea3597e9d6b","analyzedAt":"2026-08-13T16:44:57.548Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}