Saber 酱的抱枕

Fly me to the moon

09/15
2025
软件

使用 FocusLogger 排查出雷电模拟器导致窗口失去焦点的问题

使用 FocusLogger 排查出雷电模拟器导致窗口失去焦点的问题 no_lazy

最近我在玩游戏时经常遇到窗口丢失焦点的问题,表现为游戏窗口失去焦点约半秒,之后会重新获得焦点。我怀疑是有其他进程抢占了焦点,但是期间并没有看到有其他程序的窗口出现。

问题表现

失去焦点会导致游戏窗口丢失输入,很影响游戏体验,特别是在绝区零这样的动作游戏里会导致动作中断。比如今天我的星见雅在长按普攻释放三蓄时,蓄力到第二段时丢失了焦点,直接释放了 2 蓄的剑气,我真是无语了。还好我现在没有玩 PVP 游戏,否则的话想象一下近身交战时,我的角色突然停止所有操作,原地发呆半秒钟,那或许我能做的就是双手离开键盘,准备欣赏角色死后摆出的姿势了。

找出原因

我询问 Grok 有什么办法找出抢占焦点的程序,它推荐了一些软件,我试了第一个软件就解决了问题。另外我知道了这个现象在英语里叫作焦点窃取(focus stealing)。

这个软件叫 FocusLogger,可以从 GitHub 的 releases 页面下载:
https://github.com/JocysCom/FocusLogger/releases/tag/1.1.14

从压缩包里解压出一个单 exe 文件,运行它,就会记录所有获得焦点的进程,例如:

当出现焦点丢失的情况时,立刻切换到 FocusLogger 查看最近的进程,找到不该出现的那个坏东西。

导致我的问题的程序就是图上的 ldplayerpartner.exe,它是雷电模拟器(一个 Android 模拟器)的文件:

它每隔 30 分钟准时运行一次,而且每次都是全新启动(因为 PID 不同),创建一个标题为“新通知”的窗口,但是我从来没见到过这个窗口。

任务管理器里没有这个进程,但有个常驻的 ldplayerservice.exe:

应该是它会定时启动 ldplayerpartner.exe 来尝试显示什么东西。但是挺奇怪的,因为如果是显示游戏的广告弹窗之类的,不应该 30 分钟显示一次,这样用户肯定受不了。而且实际上它从没显示任何东西,这就更奇怪了。

解决办法

我把 ldplayerpartner.exe 删除,并创建了一个 txt 文件,把它的文件名改成 ldplayerpartner.exe 来占位:

成功解决了这个问题。

为了防止 ldplayerservice.exe 恢复 ldplayerpartner.exe,我把这个占位文件的属性设置为了“只读”。另外由于 ldplayerservice.exe 是以 SYSTEM 权限运行的,为了不让它操作 ldplayerpartner.exe,我在后者的的权限设置里,把 SYSTEM 用户设置为了全部拒绝。这样姑且多一道保险。

使用 FocusLogger 排查出雷电模拟器导致窗口失去焦点的问题

    1. saber 文章作者
      Google Chrome 140Google Chrome 140Windows 10/11Windows 10/11

      你这个是第三方优化的WSA吗,玩游戏的表现怎么样? Windows 自带的 WSA 问题很多,以前玩游戏的话有可能进不去游戏就闪退了,而且对 GPU 的调用似乎也有问题,我很久没试过了。

      回复
      1. 萌新
        Google Chrome 140Google Chrome 140Windows 10/11Windows 10/11

        我主要是用来打pjsk,它也支持多点触控,我能用触摸屏在Windows上打歌,体验还是不错的。其他的游戏就不清楚了呢

        回复
  1. saber 文章作者
    Google Chrome 140Google Chrome 140Windows 10/11Windows 10/11

    说起安卓模拟器,雷电只有安卓 9 内核,太过老旧。Google Play 上的一些软件(例如 Microsoft Edge 浏览器)搜都搜不到,因为它们不支持安卓 9,所以不会显示。
    夜神模拟器(Nox)倒是有安卓 12 内核的版本,我试了可以安装软件,但是无法正常运行,打开就闪退。还好这不是刚需,所以用不了就算了。
    至于 BlueStacks 我很久没用过了,刚才看了下它的安卓版本似乎是 11。不知道它的使用体验怎么样。

    其实前几年 Windows 上开始推出 Android 子系统功能时我挺期待的,但是一直存在很多问题,现在彻底寄了,可惜。

    回复