窗口层级错误
stdinfo opened this issue · 43 comments
你能告诉我你是怎么出现这种情况的吗?
我印象中以前开了360 遇到过这种问题。。。
我这里是100%复现,没有360,只有火绒
是什么操作系统呢?
win11,但是窗口结构上看和我之前版本的win10一致
我也是win11,但是没有重现。
你有vs2022吗,可以试试调试这里
https://github.com/DaZiYuan/LiveWallpaper/blob/69d42c94fd081370279b28f2db32c88207093f35/LiveWallpaperEngineAPI/Utils/WallpaperHelper.cs#L213
稍等我先看看这个函数,我这的VS是2017的不一定能用(平时基本没写过C#
LiveWallpaperEngineAPI.Samples.NetCore.Test 把这个项目运行起来就可以测试
刚才看了这块的实现,如果没有理解错的话应该是枚举到存在SHELLDLL_DefView
子窗口的窗口以后返回了下一个WorkerW
,但是SHELLDLL_DefView
并不唯一,一些软件如果调用桌面图标渲染的话也会创建SHELLDLL_DefView
窗口,所以如果找到一个就返回的话就会有问题。
这里要么判断一下找到的SHELLDLL_DefView
是不是WorkerW
的子窗口,要不可以直接全部枚举完找最后一个包括SHELLDLL_DefView
的窗口再执行第二个FindWindowsEX
。(另外感觉直接枚举最后一个WorkerW
似乎也可行?)
你Fork一个在你本机改改,如果能修复的话,可以提一个PR。
我可能下个月才会发新版本,主要是不能重现,我也只能试试。
抽空试试吧,不过以我的C#水平(完全不会)不一定改得好23333
复现的话我估计像Fences之类的桌面美化软件都会造成这个问题。
issue我就暂时先不关了?
如果是Fences导致的,可以先把Fences关了。重启巨应壁纸应该可以用,issue先不关,我后面调查一下
Fences最新版应该是可以兼容的V3.1.3.3
唔,,,我这就是3.x的fences,那我再去看看能不能找到是什么软件调用的吧。另外兼容性和启动顺序应该也相关。
你看看是3.1.3.3吗
不是的,不过我禁用掉fences以后那几个窗口还在,不知道是没退出干净的原因还是别的
可以想办法升级一下,fences老版本无法兼容,后面专门修复过这个问题
https://forums.stardock.com/486084/fences-support-faq#disableupdate
我们的问题和这个FAQ正好是反的2333
不是的,不过我禁用掉fences以后那几个窗口还在,不知道是没退出干净的原因还是别的
可以重启下电脑试试,保险起见。。。
这样,和fences兼容的问题我抽空再试一下,不过上面GetWorkerW()
函数改法应该是没问题的,至少能增加点健壮性(要么保证显示在桌面原本的workerw窗口后面要么保证显示在最下层,这样肯定不会覆盖其他的桌面元素)。
嗯,这个我后面会优化下。主要是想确认下是否是旧版本Fences导致的
如果我确认了问题的话我会回复一下的。
你能告诉我,你用的fences版本号吗,我去重现下。。。
3.08,我测试了确实是兼容性问题。(如果后启动fences的话就会存在上述和wpe冲突的问题)
有途径可以下旧版本吗?我想试试
抱歉没找到当时的安装文件,不过百度了一下关键词fences 3.08
前面好几个可用的Cracked版本,只是测试一下的话...(雾
好的,我再找找
辛苦了(大佬的回复速度真的不是住在Github吗2333
邮件通知 哈哈
可以把所有相关信息的spyxx截图都发来看看吗? 包含workerW和Shelldll_defview的
有一种可能性是用fences创建分组或者文件夹快捷入口的某一个才会创建这样的窗口,如果让我猜的话我觉得可能是文件夹快捷入口
我已经卸载老版本了,感谢反馈,后面我再看看。
辛苦作者了,大部分解决啦。
但是快捷入口的背景还会错误的获取原桌面壁纸,我还没有debug问题在哪里(这个有可能是fences的问题)。
辛苦作者了,大部分解决啦。
但是快捷入口的背景还会错误的获取原桌面壁纸,我还没有debug问题在哪里(这个有可能是fences的问题)。
辛苦作者了,大部分解决啦。 但是快捷入口的背景还会错误的获取原桌面壁纸,我还没有debug问题在哪里(这个有可能是fences的问题)。
快捷入口的问题可以通过fences种关闭半透明分区背景解决,具体冲突原因有空我再看看吧,不过这样已经就不影响使用啦
嗯嗯辛苦啦,现在已经可以使用了,如果这个问题我能找到解决方法的话我另外再开issue
感谢帮助定位问题,以前也有人反馈这个问题,一直没找到原因。