【问题现象】
运行VS对战平台输入帐号密码后游戏界面显示出来后瞬间消失。
【原因说明】
7系列安全中心禁止了窗口名字“广告”导致客户机ProcessSafe.exe直接将此窗口所属父窗口进程结束,窗口所属进程正是VS对战平台。
【解决方案】
安全中心删除对“广告”关键字的禁止即可。
【问题分析】
经过用户描述安装了网维大师客户端后就会出现这种情况,既然可以找到复现方法那么就一定可以解决。让用户直接发送远程演示复现过程,看到登录后窗口瞬间消失,此时纯属经验判断与安全中心进程禁止或窗口禁止有关。随后查看安全中心日志既查看到CloseWindow的消息,发现了带有“广告”关键字的窗口并结束了此窗口所属的进程VSClient.exe
在经过问题本地复现后,发现8系列版本并不会直接结束游戏进程,而是对游戏进程所属窗口发送了一个WM_SYSCOMMAND消息。此消息可定制最大化或者最小化或关闭窗口,并非结束进程。更差异的是8系列关闭的窗口与VS实际窗口名称并不相符,且VS窗口名字中并没有“广告”的关键字。如下两幅图:
后面在VS窗口中仔细查找了以下带有“房间广告”关键字的窗口,如下图原来是VS内嵌的一个窗口(工具为Spy++),此窗口所属父窗口正是VS的主窗口。
而7系列为什么直接结束游戏进程,8系列却没有关闭呢?实际上两种关闭方式不同而已,上面已经介绍到,8系列是通过发送WM_SYSCOMMAND消息,消息的LParam参数中可以设定关闭某窗口。而7系列是直接结束窗口所属进程,这样就造成了游戏界面一闪而过。