有個同事的全部快捷方式所有變成了Word的圖標,點擊任何快捷方式會打開word.全部Docx結尾的文檔圖標所有變成了寫字板的圖標,打開docx文件都會打開寫字板,關鍵有個更奇怪的地方,Lync2010的快捷方式圖標顯示爲畫圖程序,Adobe Acrobat的圖標也是畫圖程序。 git
OK ,圖標錯亂,通常是文件關聯出錯致使,快捷方式文件結尾爲lnk ,所以找到lnk的默認文件關聯設置應該能夠解決快捷方式圖標問題,docx的問題也是同樣。 windows
網上找到一個Fix LNK的註冊表,發現了這句是關鍵,照本宣科也發現docx 的這個地方設置的也有問題,刪除下面兩個地方的註冊表後,殺掉explorer.exe ,從新運行explorer.exe 進程後,快捷方式和Docx的文件圖標都正常了 ide
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.LNK\UserChoice] this
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.docx\UserChoice] spa
如今還剩下Lync2010的圖標還有Acrobat 9 的一系列圖標仍是畫圖程序的圖標,百思不得其解,在這些快捷方式上點擊右鍵發現target 都是灰色的,這種LNK文件和office 的一系列圖標相似,以下圖(目標、打開文件位置、更改圖標都是灰色的) code
查找資料發現這個這個連接,發現這種快捷方式原來是windows installer 的功能,叫advertised shortcut,裏面還提供了一個腳本。 blog
http://superuser.com/questions/263505/how-do-i-find-the-target-of-an-advertised-shortcut進程
Option Explicit Dim MSITarget OnErrorResumeNext' just some simple error handling for purposes of this exampleIf wscript.arguments.count = 1 Then' did actually pass an MSI advertised shortcut? Or, at least, a parameter that could be such a thing?With CreateObject("WindowsInstaller.Installer") Set MSITarget = .ShortcutTarget(wscript.arguments(0)) ' 下面三行是本身加的
wscript.echo MSITarget.StringData(1) wscript.echo MSITarget.StringData(2) wscript.echo MSITarget.StringData(3) If Err = 0 then MsgBox .ComponentPath(MSITarget.StringData(1), MSITarget.StringData(3)) Else MsgBox wscript.arguments(0) & vbcrlf & "is not a legitimate MSI shortcut file or could not be found"EndIfEndWithEndIfOnErrorGoto 0
對Office的快捷方式用上面的vbs查詢下信息,發現和WordFiles 有關係,我也用這個腳本對Lync2010的快捷方式查詢下,居然發現和PBrush有關搜索註冊表查詢pbrush,找到下面這個位置,刪除這個註冊表設置後,殺掉Explorer.exe,而後從新運行Explorer.exe ,問題解決。 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ico\UserChoice "Progid"="PBrush" ip