如何找出WinXP中造成系統(tǒng)故障的DLL文件
如何找出WinXP中造成系統(tǒng)故障的DLL文件
如何找出WinXP中造成系統(tǒng)故障的DLL文件
大家都知道DLL文件的重要性,在WinXP的運行過程中,幾乎所有的程序都會用到DLL程序,但是很多系統(tǒng)于軟件的故障往往也是DLL程序引起的,這時候系統(tǒng)后臺都會看到好多個DLL程序,那么我們究竟該怎樣才能找出造成系統(tǒng)故障的罪魁禍首呢?下面小編將通過一次案例來告訴大家解決方法。
案例回放:在一次非法操作后,WinXP“搜索助理”變成一張“白板”,不僅如此,“控制面板”中“用戶賬戶”項也顯得“面無表情”。點擊“開始→幫助和支持”,鼠標一陣閃爍卻始終不見“幫助和支持”程序界面的蹤影。
案例分析:憑感覺,小編認為系統(tǒng)中的某個DLL文件已經(jīng)注銷、丟失或損壞。但WinXP中幾乎每個程序都要調(diào)用成十上百個DLL文件,如果按常規(guī)方法一個個尋找分析,無異于大海撈針。考慮到三個程序同時“毀容”,應該是受同一個(或幾個)DLL文件的影響。為此必須找到上述這三個程序共同使用的DLL文件,然后,從中找出“幕后真兇”。
查找與比對
第一步:先從“搜索助理”入手,先弄清其“身世來歷”。在另外一臺裝有WinXP的機子中打開“搜索助理”,同時按Ctrl+Alt+Del鍵調(diào)出“任務管理器”,在“應用程序”選項卡中,選中“搜索助理”并右擊,選擇“轉(zhuǎn)到進程”,呵呵,原來它是Explorer.exe(資源管理器)的一部分。
第二步:用類似方法可得知“幫助和支持”屬于進程Helpctr.exe,但在“用戶賬戶”中只能用觀察比較的方法查出其歸屬進程mshta.exe。
小提示
可通過打開、關閉“用戶賬戶” 的方法比較“任務管理器”中的變化來確定其所屬的進程;也可以在打開“搜索助理”時,在“命令提示符”中輸入“tasklist /fo table>C:acc1.txt”,在關閉該程序后,在“命令提示符”中輸入“tasklist /fo table>C:acc2.txt”,然后用fc命令進行比較“fc C:acc1.txt C:acc2.txt>C:acc.txt”,比較得出的多余項即為該程序所屬的進程。
第三步:重啟電腦,下面要請軟件LISTDLLS出場了。到這里下載該軟件,然后將listdlls.exe移動到C:Windows,按Ctrl+R打開“運行”框,輸入“cmd”,在“命令提示符”中輸入:
listdlls -r explorer.exe>C:explorer1.txt。
接著打開“搜索助理”,再次在“命令提示符”中輸入:listdlls -r explorer.exe>C:explorer2.txt
最后用fc命令進行比較:
fc C:explorer1.txt C:explorer2.txt>C:explorer.txt。
這樣打開C:explorer.txt文件,對比后多出的文件即是“搜索助理”調(diào)用的DLL文件。
小提示
ListDlls的用法為:listdlls [-r] [processname pid]或listdlls [-r] [-d dllname]
第四步:重啟電腦,用命令“listdlls -r helpctr.exe>C:helpctr.txt”得到“幫助和支持”所使用的DLL文件。此處重啟是為了使已經(jīng)沒有使用的DLL文件從內(nèi)存中卸載。
第五步:再次重啟,用命令“listdlls -r mshta.exe>C:mshta.txt”得到“用戶賬戶”使用的DLL文件。
篩選最后“真兇”
分析explorer.txt中的DLL文件,其中文件目錄中含有“srchasst”的,均為“搜索助理”單獨調(diào)用的文件。剩余的文件分別為C:Windowssystem32目錄下的sxs.dll、vbscript.dll、jscript.dll文件。用“搜索”的方法可以發(fā)現(xiàn)文件helpctr.txt和mshta.txt中均存在上述文件,看來“罪魁禍首”非這三者莫屬。
回到原來的電腦,發(fā)現(xiàn)三個文件均存在,也并未損壞。用命令regsvr32命令分別進行注冊。果然,在對其中的jscript.dll文件的進行注冊后(使用命令 regsvr32 jscript.dll),“白板”程序終于恢復其美麗的“容顏”。
最后想對大家說明的事,系統(tǒng)很多軟件故障都是由DLL文件錯誤引起的。以前我們往往更關注DLL文件是否丟失,其實還有很多原因是DLL文件沒有注冊成功造成的。看了本文介紹的方法,我們就可以很容易地揪出造成故障的DLL文件,并給予最好的解決方法,最終排憂解難。