一。开头

玩游戏的人可能会遇到玩着玩着游戏就弹出去了的情况,相当影响游戏体验。其实原因就是游戏的焦点被另外一个程序夺走了。一种简单的办法就是把全屏游戏设置为窗口化,这样游戏可能就不会弹出去,但是仍然会失去焦点,体现在游戏对键盘无响应。这个时候需要再点一下游戏窗口,才能又获取到焦点。

还有修改注册表的方法,可以参考这个帖子,我暂时还没试过:https://zhuanlan.zhihu.com/p/33227113

不过本文主要讲的是一种特殊情况,上面那帖子里也说了,到底是哪个程序把我们的焦点夺走了呢,有一个叫whoareyou.exe的程序,可以查出答案。直接双击运行这个程序,然后把它放那不管它,过一会儿看里面都显示出哪些程序,就知道是谁夺走了焦点。

如上图,WindowsTerminal.exe就是运行whoareyou.exe的时候打开的命令行窗口,肯定不是它的锅啦。而红框里的这个东西,我肯定是没有运行的,所以就是它夺走了我的焦点。

注意:如果你运行了whoareyou之后,你又去打开或者切换到别的界面,那它们都会显示到这个命令行窗口里,所以你需要自己去辨别一下,哪些是由于你自己的操作打开的东西,把它们排除。

二。重点

本文的重点并不是whoareyou,一般来说whoareyou就可以找到元凶了,不过我遇到的就是那个特殊的情况,就是上面那个图里的vcredist_x86.exe,这是一个vc运行库安装程序,然而它不可能是元凶啊,它自己是不可能主动运行的,肯定是有别的程序(元凶)去运行它。并且如果我把它删除了,元凶还会再把它下载下来,然后运行它。

让人纠结的是,它会不断地被运行,间隔时间从十几分钟到几十分钟不等。从安装日志里面可以看到它每次的运行时间。至于它为啥要运行这么多次呢,因为我电脑上已经装了一个比它新的运行库,没法再装这个旧的了,所以会装失败,然后就不停地装,真是xx。

我一开始想着是不是在任务计划里面能找到它,结果任务计划里的运行时间跟上面的日志的时间都对不上。

再后来突然想到,如果我把vcredist_x86.exe删除了,元凶会再把它下载下来,那下载下来的时候,得写硬盘啊,如果我提前把资源监视器打开,并且按写磁盘的速度降序排序,那下载vcredist_x86.exe的那一项很可能会排到前面,则最左边那一列“磁盘活动”就是元凶的进程名了。

当然,我不可能一直盯着看,它这个运行时间也不确定,盯着十几分钟也够无聊的,问题是有时候可能几十分钟甚至更久,所以我们可以搞个程序来监测,程序逻辑非常简单,首先我把C:\Users\kv183\AppData\Local\Temp\vcredist_x86.exe删除,然后运行我的程序,并且打开资源监视器,让资源监视器显示在屏幕上。

而我的程序会每0.5秒监测一下这个文件是不是又产生了,一旦发现它产生了,就开始截屏,1秒截一张,截个50张。(注,这些参数都可以根据需要自己调整),为啥要截50张呢,因为资源监视器显示的内容好像不是那么实时的,比如程序已经下载到硬盘上了,它可能过个一两秒才显示在资源监视器里。

不过有一点要注意的是,截图归截图,别立马把截的图写到文件里,因为一旦你写文件,那你这个程序自已就会出现在资源监视器里啦,尽量不要影响我们的监测,截了50张图之后一起写。

先上图。

可以看到,元凶就是腾迅电脑管家!

上代码,用python写的,需要安装的三方库有numpy,opencv-python,pillow。

import cv2 as cv
import numpy as np
from PIL import ImageGrab
import time
import osfile_path = r'C:\Users\kv183\AppData\Local\Temp\vcredist_x86.exe'
found = False
while not found:if os.path.exists(file_path):found = Truebreaktime.sleep(0.5)imgs = []
for i in range(50):img = ImageGrab.grab(bbox=(0, 0, 1920, 1080))img = np.array(img.getdata(), np.uint8).reshape(img.size[1], img.size[0], 3)img = cv.cvtColor(img, cv.COLOR_RGB2BGR)imgs.append(img)time.sleep(1)img_dir = r'd:\catch_you'
os.makedirs(img_dir, exist_ok=True)for index, img in enumerate(imgs):cv.imwrite(os.path.join(img_dir, '{:02d}.jpg'.format(index)), img)

-------------------------------------

更新:

后来有朋友私信我,腾迅电脑管家的这个问题升到15.2.22559.217及以上的版本就能解决啦,我试过了,确实可行!

一种定位程序失去焦点的办法,元凶竟然是tx电脑管家!相关推荐

  1. 程序员还在用360,腾讯电脑管家清理注册表,清理垃圾?只能说你太low

    首先明明电脑上,就有清理垃圾和无用注册表的功能,只是我么缺少发现美的眼睛. 为什么不用360,腾讯全家桶. 那玩意固然香,而且真香,但是后台占用率太高,作为一个有洁癖的我,实在是不想看到自己右下角多一 ...

  2. 关于 UE4 (虚幻引擎4) 4.25.1版本提示“无法定位程序输入点 DXGIGetDebugInterface1 于动态链接库dxgi.dll上”的错误的解决办法

    关于 UE4 (虚幻引擎4) 4.25.1版本提示"无法定位程序输入点 DXGIGetDebugInterface1 于动态链接库dxgi.dll上"的错误的解决办法: 1.原因: ...

  3. python 无法定位程序输入点ucrtbase_win7无法定位程序输入点ucrtbase.abort于动态链接库的解决办法...

    最近有win7用户向小编反馈,在运行某些程序,比如文明6的时候会出现提示"无法定位程序输入点ucrtbase.abort于动态链接库api-ms-win-crt-runtime-l1-1-0 ...

  4. 无法定位程序输入点的一种可能

    无法定位程序输入点的问题 1. 问题描述 2. 一般解决方案 3. 可能的隐秘错误 说明: 关键词: 无法找到入口 anaconda qt vtk 1. 问题描述 出现该问题的原因一般是 找不到动态库 ...

  5. win7 “无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-|1-1-0.dll”的解决办法

    安装eclipse,出现"无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-|1-1-0.dll"问题,参照网络上的方 ...

  6. 无法定位程序输入点?isPublicID@QXmlUtils@@SA_NAEVVQString@@@Z于动态链接库 D:\Qt\Qt5.7.0\5.7\msvc2015_64\bin\Qt5Cored

    Qt系列文章目录 文章目录 Qt系列文章目录 前言 一.错误原因是什么? 解决办法 前言 主要用到了InfraRender.dll这个动态库,这个动态库又依赖:Qt5Cored.dll.Qt5Guid ...

  7. 内存不能为read和无法定位程序输入点 +@于动态链接库上

    内存不能为read和无法定位程序输入点 +@于动态链接库上 2011年06月13日 查看文章 写新文章 内存不能为read和无法定位程序输入点 +@于动态链接库上 2011-06-13 05:41 最 ...

  8. 计算机管理无法定位程序输入点,Word竟然“无法定位程序输入点 GetDateFormatEx”!...

    昨天用电脑卫士更新了漏洞,今天打开word,发现打不开了,弹出提示"无法定位程序输入点 GetDateFormatEx 于动态链接库 KERNEL32上".一下子蒙圈了,电脑里好多 ...

  9. 一种定位内存泄露的方法(Linux)

    2019独角兽企业重金招聘Python工程师标准>>> 目的: 本文是<一种定位内存泄露的方法(Solaris)>对应的Linux版本,调试器使用gdb.主要介绍实例部分 ...

最新文章

  1. 关于线程池ExecutorService的shutdown()与shutdownNow()方法的区别
  2. centos7 nginx配置php7,centos7下yum安装nginx和php7和php-fpm
  3. nRF51822 SDK初体验
  4. linux之errno值为104(connetction reset by peer)
  5. eslint关闭===替换==;eslint关闭全等于校验;eslint关闭==校验
  6. 千万量级只是5G商用起点?高通专家:5G部署速度比当初的4G更快
  7. linux的定制和发布(二)
  8. 20种语言说圣诞快乐
  9. 如何修复GitKraken Inotify Limit Error\idea erro - 升级Ubuntu / Linux inotify限制
  10. mysql+enable+sql+log_MySQL -- redolog + binlog
  11. 三分钟入门电力系统之----------三道防线
  12. WIncc7.4入门
  13. Java面向对象编程三大特征 - 封装
  14. 电压跟随器的稳定性问题
  15. (一)一文掌握flink性能优化:资源配置调优
  16. WPF 开源二维绘画小工具 GeometryToolDemo 项目
  17. 高德地图地理编码和逆地理编码,以及逆地理编码的时候如何去掉省、市、镇
  18. 网络 | email
  19. Qt编写可视化大屏电子看板系统30-模块8物料管理
  20. 【大数据之Hadoop3.x】

热门文章

  1. IE11使用F12开发人员工具一片空白无法正常使用的解决方案
  2. Techwiz LCD 1D的TN模式光学分析
  3. CRE6908D100R085V
  4. 揪心!4岁幼童模仿动画片,撑伞从26楼跳下!
  5. Android今日头条平台隐私合规整改
  6. 高并发之——缓存思路
  7. Spark 凭什么成为最火的大数据计算引擎?
  8. 机械硬盘大比拼,矿工必看
  9. 【Metadata】二. EXIF详解
  10. JS的Array对象解析