Java堂  


Windows任务栏出现多个相同栏的解决方法

归档在: OS — Jet @ 2:17 下午
Tags: ,
原文出处: http://www.javatang.com/archives/2007/05/30/1755165.html
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!

今天朋友的电脑(系统是Windows XP)出现一个非常奇怪的现象:打开应用程序的时候在任务栏中出现两个相同的图标列表,而且拖动也删除不掉。比如打开“我的电脑”之后会发现在任务栏上“我的电脑”的图标左边右边各出现一个。后来在网上找了一些资料,终于找到了解决的方法。

打开“Windows任务管理器”(同时按下按下 Ctrl+Alt+Del 键或Ctrl+Shift+Esc 键),选择“进程”标签关闭所有的 explorer.exe 和 iexplore.exe 进程。这个时候电脑中只显示任务管理器程序了。

接下来切换到“应用程序”标签,点击下面的“新任务”按钮,在打开文本框中输入“regedit”打开注册表。找到并删除以下三个项目(包含其下的所有键):

  1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\explorer\StuckRects2
  2. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\explorer\Streams
  3. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\explorer\StreamsMRU

然后关闭注册表编辑器,单击任务管理器上的“关机”-“重新启动”菜单重启电脑之后就可以了。

另外在Windows XP新闻组上写了一个vbs脚本文件,可以直接处理上面的操作,内容如下:

  1. 'xp_taskbar_desktop_fixall.vbs - Repairs the Taskbar when minimized programs don't show.
  2. '?Kelly Theriot and Doug Knox - 8/22/2003
  3. '翻译:Smallfrogs。翻译内容:将英文提示改为简体中文
  4. '来源:Microsoft Windows XP NewsGroup
  5.  
  6. Set WSHShell = WScript.CreateObject("WScript.Shell")
  7. Message = "本脚本用于修复Windows XP中当最小化程序时,无法在任务栏显示图标的问题。"& vbCR & vbCR
  8. Message = Message & "为了正常工作,本脚本将关闭和重启 Windows Explorer 外壳,这个操作不会损坏你的系统。" & vbCR & vbCR
  9. Message = Message & "请关闭所有杀毒软件的实时监控!并保存所有打开的文件。"& vbCR & vbCR
  10. Message = Message & "是否继续?"
  11.  
  12. X = MsgBox(Message, vbYesNo+vbExclamation, "注意")
  13.  
  14. If X = 6 Then
  15.  
  16. On Error Resume Next
  17.  
  18. WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2\"
  19. WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamsMRU\"
  20. WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop\"
  21. WshShell.RegDelete "HKCU\Software\Microsoft\Internet Explorer\Explorer Bars\{32683183-48a0-441b-a342-7c2a440a9478}\BarSize"
  22.  
  23. P1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"
  24.  
  25. WshShell.RegWrite p1 & "NoBandCustomize", 0, "REG_DWORD"
  26. WshShell.RegWrite p1 & "NoMovingBands", 0, "REG_DWORD"
  27. WshShell.RegWrite p1 & "NoCloseDragDropBands", 0, "REG_DWORD"
  28. WshShell.RegWrite p1 & "NoSetTaskbar", 0, "REG_DWORD"
  29. WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD"
  30. WshShell.RegWrite p1 & "NoSaveSettings",0,"REG_DWORD"
  31. WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD"
  32. WshShell.RegWrite p1 & "NoSetTaskbar",0,"REG_DWORD"
  33. WshShell.RegWrite p1 & "NoActiveDesktop",0,"REG_DWORD"
  34. WshShell.RegWrite p1 & "ClassicShell",0,"REG_DWORD"
  35.  
  36. p1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"
  37.  
  38. WshShell.RegWrite p1 & "NoCloseDragDropBands", 0, "REG_DWORD"
  39. WshShell.RegDelete p1 & "NoMovingBands"
  40.  
  41. p1 = "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell"
  42.  
  43. WshShell.RegWrite p1, "explorer.exe", "REG_SZ"
  44.  
  45. p1 = "HKCU\Software\Microsoft\Internet Explorer\Explorer Bars\{32683183-48a0-441b-a342-7c2a440a9478}\"
  46. WshShell.RegDelete p1 & "BarSize"
  47. WshShell.RegWrite p1, "Media Band", "REG_SZ"
  48.  
  49. On Error Goto 0
  50.  
  51. For Each Process in GetObject("winmgmts:"). _
  52. ExecQuery ("select * from Win32_Process where name='explorer.exe'")
  53.   Process.terminate(0)
  54. Next
  55.  
  56. MsgBox "完成!" & vbcr & vbcr & "?Kelly Theriot and Doug Knox", 4096, "完成"
  57.  
  58. Else
  59.  
  60. MsgBox "没有对你的系统进行任何改变。" & vbcr & vbcr & "?Kelly Theriot and Doug Knox", 4096, "用户取消了"
  61.  
  62. End If

最后需要说明的是:上述的方法不仅解决开始所描述的问题,而且还可以解决各种任务栏工作不正常的情况,比如:任务栏不显示正在运行的程序的图标,或者在任务栏上总是出现重复的图标等等。

参考资料:
http://gaozhongliang328.blog.163.com/blog/static/9853949200722910502867

1 条评论 »

  1. 我的执行第52行有错“0×80041017”

    评论 作者 Ray — 5月 19, 2008 @ 2:28 下午

发表您的评论