今天,被某些開機自動運行的程序「惹毛」了。打算使用 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
真的是排錯的神兵利器。可是必定要用好過濾才行。不然就是大海撈針!