Skip to content

[错误] bug #196

@FangYYoung

Description

@FangYYoung

错误描述

OpenList-Desktop v0.9.0 Bug Report

环境信息

项目 内容
OpenList-Desktop v0.9.0(2026-02-10 发布)
安装路径 D:\Program Files (x86)\OpenList-Desktop\
应用类型 Tauri v2 (Rust + WebView2)
架构 x64
Windows 版本 10.0.19045
WebView2 Runtime 148.0.3967.96
显示器 双显示器(主屏 1536×864 @125%,副屏 1536×865 @125%)

Bug 1:主窗口启动时被隐藏(Window Created Hidden)

现象

  • openlist-desktop.exe 进程正常启动(PID 存在)
  • 主窗口 "OpenList Desktop" 被创建为 Visible=False
  • 仅创建一个 14×14px 的不可见辅助窗口(标题 io.github.openlistteam.openlist.desktop-siw
  • 用户看不到任何 UI,也无法在任务栏或系统托盘中找到应用
  • 任务管理器能看到 openlist-desktop.exe 进程在运行

Windows 窗口枚举结果

HWND=789238 Visible=False Title='OpenList Desktop' Rect=(168,12)-(1382,819) size=1214×807
HWND=723674 Visible=True  Title='io.github.openlistteam.openlist.desktop-siw' Rect=(0,0)-(14,14)
HWND=6359440 Visible=True  Title='' Rect=(0,0)-(14,14)
HWND=13439082 Visible=False Title='Default IME' Rect=(0,0)-(0,0)

触发条件

  • 每次启动都复现(100%)

临时手动修复

使用 ShowWindow(hwnd, SW_RESTORE=9) + ShowWindow(hwnd, SW_SHOW=5) 可强制显示窗口。

// 通过 EnumWindows 找到 "OpenList Desktop" 窗口后执行
ShowWindow(hwnd, SW_RESTORE);
ShowWindow(hwnd, SW_SHOW);
SetForegroundWindow(hwnd);

Bug 2:WebView2 渲染白屏(Blank White Screen)

现象

  • 当通过外部手段强制显示窗口后,窗口内容为一片空白
  • 标题栏显示 "OpenList Desktop",但 WebView2 未渲染任何内容
  • 无崩溃、无错误弹窗、CDP 调试发现页面 URL 为空(about:blank

WebView2 日志关键错误

[GPU Process] ERROR: base\win\edge_dpi_util.cc:219
  failed to set WebView dpi awareness of 2: 系统找不到指定的选项。 (0xCB)

[GPU Process] ERROR: ui\gl\direct_composition_support.cc:243
GetGpuDriverOverlayInfo: Failed to retrieve video device

[GPU Process] WARNING: ui\gl\direct_composition_support.cc:1195
QueryInterface to IDCompositionDevice4 failed: 不支持此接口 (0x80004002)

根因分析

  • DirectComposition (IDCompositionDevice4) 初始化失败 0x80004002 (E_NOINTERFACE)
  • 发生在双显示器 + 非默认 DPI 缩放(125%)的环境下
  • GPU 进程的 DPI awareness 设置也失败(0xCB)
  • 即使设置 --disable-gpu,WebView2 内容仍无法加载(页面停留在 about:blank

触发条件

  • 双显示器配置
  • 显示器 DPI 缩放 ≠ 100%

临时解决方案

  • 断开外接显示器,使用单显示器
  • 将所有显示器的缩放设为 100%

Bug 3:openlist.exe(142MB)启动后立即退出

现象

  • 安装目录下存在 openlist.exe(142,321,656 bytes)
  • 启动后立即退出(exit code 0),无任何输出

备注

  • 此文件可能是误打包的跨平台二进制或冗余文件
  • openlist-desktop.exe(9.1MB)才是正确的 Windows 入口

建议修复方向

  1. Tauri window config:检查 tauri.conf.jsonwindows[0].visible 是否被设为 false

    {
     "windows": [{
       "visible": true  // 确认此项不是 false
     }]
    }

    或在 Rust 代码中检查:

    webview_window_builder.visible(true)  // 确保不是 false
  2. WebView2 初始化:在创建 WebView2 环境前检查 IDCompositionDevice 可用性,不可用时回退到软件渲染

    // 在 Tauri 的 setup 中设置
    use tauri::WebviewWindowBuilder;
    // 尝试设置 additional_browser_args
    builder.additional_browser_args("--disable-gpu")
  3. 多显示器 DPI 处理:修复 SetProcessDpiAwareness 失败时的回退逻辑

    • 错误码 0xCB 表示 DPI awareness 设置被拒绝
  4. 清理冗余文件:移除或归档安装目录下的 openlist.exe 避免用户混淆


报告日期:2026-06-09 报告人:用户实际使用反馈

重现步骤

No response

预期行为

No response

实际行为

No response

操作系统

Windows 11

系统架构

x64 (64位)

OpenList Desktop 版本

0.9.0

应用程序日志

其他信息

No response

检查清单

  • 我已搜索现有问题以确保这不是重复问题
  • 我已提供所有必需的环境信息
  • 我可以稳定地重现此问题

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions