刚才电脑卡死后,屏幕中央留下一个只有任务管理器不怕它的黑块,最后我把锅顺到了 Typeless

刚才本机遇到一个挺好玩的 Windows 故障,记录一下排查过程。

现象先说人话版:

电脑先卡了一下,之后屏幕中央出现一块巨大的黑色矩形,最离谱的是它会挡住别的窗口,但任务管理器偏偏不会被它挡住。

这种感觉就很诡异,因为它不像死机,也不像显示器坏了,更像是屏幕上凭空多了一个“幽灵窗口”。

我一开始的直觉其实有几个方向:

  • 显示器面板坏了
  • Chrome 或某个浏览器窗口渲染炸了
  • 显卡驱动刚刚重置过
  • 某个常驻的悬浮窗/覆盖层程序挂了,但窗口残骸还留在桌面上

后面逐条排,基本把答案缩出来了。

先确认它不是显示器坏了

最关键的一个小细节是:这个黑块能被截图截进去。

这件事很重要,因为如果是显示器面板坏点、漏液、压伤,那通常截图里不会出现。
截图里都能看到,说明它是 Windows 图形栈里的东西,是“软件层窗口”,不是物理屏幕坏了。

然后去翻系统日志

我查了 2026-04-06 01:27 左右的日志,时间线上挺有意思:

  • 01:27:12alttab_windows.exe 挂住
  • 01:27:19DWM(桌面窗口管理器)退出并重启
  • 01:27:20CPALauncher.exe 崩溃
  • 后面还能看到一串 LiveKernelEvent 117 / 141 / 1a8 / 1b8
  • 还出现了 WindowsBlackScreenDiagnosticsV1

这里最有价值的一条不是谁挂了,而是 CPALauncher 的 .NET 异常里直接写了:

桌面合成被禁用,DwmExtendFrameIntoClientArea 无法完成

这句话的含义非常直接:
不是 CPALauncher 先把系统搞挂,而是 桌面合成/DWM 当时先断了一下,它只是刚好在那个时刻访问了 DWM 接口,于是跟着一起炸。

所以大方向已经很清楚了:

先发生的是显示/图形链异常,后面才是各种应用跟着连锁报错。

为什么我后来怀疑不是单个应用,而是整条图形链抖了

因为后面的噪音特别整齐:

  • Typeless 的 Sentry 日志里反复出现 screen.display-removed / added / metrics-changed
  • PixPin.exe 后来还在 d3d11.dll 上崩了两次
  • NVIDIA Overlay 也在那段时间反复重建覆盖层进程

这类现象拼在一起,就不像“某个应用自己傻了”,更像是:

系统认为显示设备被移除又加回来,或者显卡驱动/合成链在做恢复。

一旦 Windows 图形链抖一下,那些最爱折腾桌面的程序会最先出事:

  • 悬浮窗
  • 覆盖层
  • 截图工具
  • 窗口切换增强
  • 透明窗口
  • 全局热键
  • Electron 小工具

而我这台机子上,刚好这类东西还真不少。

真正把黑块定位出来的瞬间

后面我没再猜,直接枚举了屏幕中央那块区域上方的顶层窗口。

命中的结果很漂亮:

  • 进程:Typeless
  • 窗口标题:Status
  • 坐标和尺寸,和黑块基本完全对得上

也就是说,这块黑东西不是浏览器,不是桌面,不是显卡 OSD 本体,而是 Typeless 的一个状态浮窗

然后我去翻了 Typeless 的本地资源,里面甚至能直接看到:

  • floating_bar__window__title = "Status"

这下基本坐实了:

那块黑块本质上就是 Typeless 的状态浮窗,但是在图形链异常之后,没有被正确重绘/关闭,于是变成了一个纯黑的顶层幽灵窗口。

为什么“任务管理器不会被挡”这个细节那么有用

这个现象其实特别像一个高层级覆盖窗。

普通应用窗口如果黑了,任务管理器一样会被挡。
但如果是某种特殊的顶层悬浮窗、置顶窗口、工具窗口、分层窗口,任务管理器有时能靠自己的显示优先级压过它。

所以“别的窗口都会被挡,任务管理器不会”这个细节,实际上非常像在提醒你:

去查顶层覆盖窗,不要只盯浏览器标签页。

最终处理方式其实很朴素

没有什么玄学修复。

最后真正让黑块消失的动作只有一个:

直接结束 Typeless 进程。

一关,黑块立刻没了。

这也说明它并不是某种“系统已经坏了必须重启才能恢复”的状态,而是一个仍然活着、但内容已经坏掉的窗口实体。

这件事背后的“根因”和“近因”我现在的理解

我现在会把它拆成两层:

近因

TypelessStatus 浮窗在显示链异常后恢复失败,留下了黑色顶层窗口。

更底层的根因

Windows 图形栈在那一段时间里先出了问题,像是:

  • DWM 被打断/重建
  • GPU 看门狗事件触发
  • 显卡驱动或者显示拓扑瞬时失稳

所以 Typeless 不是唯一问题源,更像是这次事故里最显眼的受害者之一。

现在回头看,哪些东西最可疑

按我自己的优先级排序:

  1. 显卡驱动 / 图形栈瞬时失稳
  2. 窗口增强/覆盖层类常驻程序叠得太多
  3. Typeless 本身对显示拓扑变化处理不够稳

当时一起在场的“高风险类型程序”包括:

  • Typeless
  • PixPin
  • alttab_windows
  • NVIDIA Overlay
  • 还有已经被我清掉的 CPALauncher

这些东西单独看都不一定有问题,但叠在一起,就很像在给 DWM 和 D3D11 做压力测试。

如果下次我再遇到类似故障,我会怎么更快处理

现在这类问题的排查顺序我会改成这样:

  1. 先看黑块能不能被截图截进去
  2. 能截进去的话,立刻判定是软件层窗口,不是屏幕坏
  3. 先开任务管理器,找悬浮窗/覆盖层/截图/窗口增强类进程
  4. 枚举或肉眼锁定黑块属于哪个窗口
  5. 先结束那个进程,再回头查系统日志
  6. 最后再决定要不要处理更底层的显卡驱动问题

暂时结论

这次不是“显示器坏了”,也不是“Chrome 黑屏”那么简单。

更准确地说,是:

一次图形链/DWM 级别的异常,把一堆依赖桌面合成的程序都带崩了;而 Typeless 的 Status 浮窗很不幸,最后以一个巨大的黑色幽灵窗口形式留在了屏幕中央。

这种问题真的很 Windows,也挺有意思:

不是那种一眼就看出来的故障,而是你得先接受“黑块也是一个窗口对象”这个事实,后面的路才会突然顺起来。

如果后面我把驱动版本、复发条件、或者 Typeless 哪个具体功能会触发这个状态再缩小一点,我再补一帖。