今天,被某些开机自动运行的程序“惹毛”了。打算使用 Autoruns
查看这个进程为何会开机启动。没想到打开 Autoruns
后,只能在任务栏看到图标,怎么点都点出不来。Autoruns
已经启动了,否则任务栏不会看到图标,究竟是什么缘由致使的呢?继续阅读前,请回忆下是否遇到过相似的状况,有什么思路吗?工具
说明: 很早就写了初稿,一直没来得及编辑完善,直到周末才编辑完。code
照例请出咱们的老朋友 —— process monitor
。开始捕获,而后打开 Autoruns
,当任务栏出现 Autoruns
的图标后,中止捕获。经过 Tools
-> Process Tree...
(或者按 Ctrl + T
)查找到 Autoruns
,在其上面右键,Add Process to Include Filter
,只显示 Autoruns
相关的事件,准备进一步分析。cdn
没想到!?竟然一篇空白,什么都没有了!blog
process monitor
确定捕获了对应的事件,可是为何什么都没有了呢?先检查下过滤条件。进程
原来,process monitor
默认会过滤掉 Autoruns
相关的事件。关闭这条过滤规则,点击 OK
,关于 Autoruns
的事件都出来了。事件
捕获的事件有了,咱们就能够继续分析了。我猜想,Autoruns
应该把配置保存到了注册表中,因此排除其它几类事件,只保留注册表相关事件。应该是成功的读取到了某些错误的设置,因此只保留 Reuslt
是 Success
并且 Operation
是 RegQueryValue
的事件。(固然,这是个人猜想。还有多是没读取到某些关键设置,若是是没读取到,咱们应该把 Result
列是 Success
的排除掉。)it
通常状况下,不少程序会把对应的设置保存到 HKCU
下,而不是 HKLM
。由于写入 HKLM
须要管理员权限,读取不用。因此咱们还能够排除 Path
以 HKLM
开头的记录。io
作好过滤后,往下浏览下,发现了四个跟位置有关的参数。event
发现,其中的 ypos
的值很奇怪,删除后从新启动 Autoruns
便可正常显示了。整个过程请参考下面的屏幕录像。class
友情提示:
Autoruns
在关闭的时候会保存相关配置到注册表,因此须要先关闭Autoruns
,再作修改操做。
在公司的时候,接过外接显示器。应该是 Autoruns
上次退出的时候的位置正在外接显示器,保存的位置是相对于外接显示器的位置。本次启动后,依然想在外接显示器中显示。可是,外接显示器已经没有了,因此不能正常显示出来。make sense!
Autoruns
会保存相关设置到注册表中,对应的注册表位置是
HKCU\Software\Sysinternals\AutoRuns
。
Sysinternals
工具也会把设置保存到
HKCU\Software\Sysinternals\
下面。
process monitor
默认会过滤一些事件,其中就包括
Autoruns
相关的事件。
process monitor
真的是排错的神兵利器。可是必定要用好过滤才行。不然就是大海捞针!