Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

鼠标手势在桌面无窗口时失效 #40

Open
filwaline opened this issue Jun 7, 2021 · 6 comments
Open

鼠标手势在桌面无窗口时失效 #40

filwaline opened this issue Jun 7, 2021 · 6 comments
Labels
discussion 我们是兄弟,我怎么会鸽你呢

Comments

@filwaline
Copy link

在桌面有至少一个可见窗口时,手势是正常可用的。

但在这个条件不满足时:

  • 没有打开任何窗口
  • 有窗口但是最小化了
    • 比如 win+d 显示桌面

鼠标手势就失效了。(已经确定不是手势与灵敏度的问题

我怀疑这是鼠标手势被条件性禁用了,然后做了一个实验:

  • 全屏模式下禁用鼠标手势✅
    • 条件性禁用
  • 全屏模式下禁用鼠标手势🔲
    • 一切正常
      • 但是可能会在玩游戏时误触发☹

这个BUG大概是,在桌面无可见窗口时,把explorer.exe理解成了全屏独占应用?😂

其他信息:
Windows 10 专业版 - 20H2 - 19042.985
SAOUtils Steam x64

@GPBeta
Copy link
Member

GPBeta commented Jun 7, 2021

把explorer.exe理解成了全屏独占应用?

确实是有东西全屏占用了,但是 M$ 不背这锅。

实际上是 NVIDIA GeForce Experience 在开启 “应用内录屏” 下会放置一个全屏透明窗口。
之前已经尝试修复,但无奈老黄老是变动导致修正在更新 NGE 之后无效;两年前已经向 NVIDIA 回报该问题,目前仍未收到任何回复。

临时的处理办法是关闭 NVIDIA GeForce Experience “应用内录屏” 功能。

@filwaline
Copy link
Author

关掉 NGE游戏内覆盖 还真的就OK了……

@GPBeta
Copy link
Member

GPBeta commented Jun 8, 2021

把 Issue 留着给有同样问题的人看看,顺便讨论一下应该如何针对 NGE 的问题修复。

@GPBeta GPBeta reopened this Jun 8, 2021
@GPBeta GPBeta added the discussion 我们是兄弟,我怎么会鸽你呢 label Jun 8, 2021
@filwaline
Copy link
Author

已经明确了bug的源头,但是却没有办法自行解决,所以我猜你是调用某条系统API来判断当前是不是全屏独占?

那么有没有可能,通过调用其他系统API来获取窗口信息,然后自己编写算法来计算是不是全屏独占模式?算法里自然是要明确排除掉NGE这个捣蛋鬼(

(不怎么了解windows系统编程,就随口提一下

@GPBeta
Copy link
Member

GPBeta commented Jun 9, 2021

其实已经做针对处理的,问题是如何准确判断是不是 NGE 的窗口。

@filwaline
Copy link
Author

假设: 用户没有任何主动操作时,系统不会产生新的窗口。

提供一个手动识别并屏蔽NGE窗口的流程:

  1. 指引用户打开NGE设置
  2. 记录当前所有的窗口id
  3. 指引用户 toggle NGE游戏内覆盖
  4. 记录此时所以的窗口id
  5. 计算两次记录的差集
    5.1. 让用户勾选?
  6. 屏蔽差集中的窗口

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion 我们是兄弟,我怎么会鸽你呢
Projects
None yet
Development

No branches or pull requests

2 participants