tangtangbobo 2008-6-26 08:55
系统任务栏混乱恢复
在 Windows XP 系统中,某些情况下可能会出现任务栏工作不正常的情况,比如:任务栏不显示正在运行的程序的图标,或者在任务栏上总是出现重复的图标。要解决这类问题,可以尝试如下方法
修改注册表,复制以下代码,存为扩展名为"vbs"的文件,如"restore.vbs",双击运行即可。
Set WSHShell = WScript.CreateObject("WScript.Shell")
Message = "本脚本用于修复Windows XP中任务栏混乱的问题"& vbCR & vbCR
Message = Message & "为了正常工作,本脚本将关闭和重启 Windows Explorer 外壳,这个操作不会损坏你的系统。" & vbCR & vbCR
Message = Message & "请关闭所有杀毒软件的实时监控!并保存所有打开的文件。"& vbCR & vbCR
Message = Message & "是否继续?"
X = MsgBox(Message, vbYesNo+vbExclamation, "注意")
If X = 6 Then
On Error Resume Next
WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2\"
WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamsMRU\"
WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop\"
WshShell.RegDelete "HKCU\Software\Microsoft\Internet Explorer\Explorer Bars\{32683183-48a0-441b-a342-7c2a440a9478}\BarSize"
P1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"
WshShell.RegWrite p1 & "NoBandCustomize", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoMovingBands", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoCloseDragDropBands", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoSetTaskbar", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoSaveSettings",0,"REG_DWORD"
WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoSetTaskbar",0,"REG_DWORD"
WshShell.RegWrite p1 & "NoActiveDesktop",0,"REG_DWORD"
WshShell.RegWrite p1 & "ClassicShell",0,"REG_DWORD"
WshShell.RegWrite p1 & "NoTrayItemsDisplay",0,"REG_DWORD"
p1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\本地User\Software\Microsoft\Windows\CurrentVersion\Policies\ Explorer\"
WshShell.RegWrite p1 & "NoCloseDragDropBands", 0, "REG_DWORD"
WshShell.RegDelete p1 & "NoMovingBands"
p1 = "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell"
WshShell.RegWrite p1, "explorer.exe", "REG_SZ"
p1 = "HKCU\Software\Microsoft\Internet Explorer\Explorer Bars\{32683183-48a0-441b-a342-7c2a440a9478}\"
WshShell.RegDelete p1 & "BarSize"
WshShell.RegWrite p1, "媒体区", "REG_SZ"
On Error Goto 0
For Each Process in GetObject("winmgmts:"). _
ExecQuery ("select * from Win32_Process where name='explorer.exe'")
Process.terminate(0)
Next
MsgBox "完成!" & vbcr & vbcr & "?Kelly Theriot and Doug Knox", 4096, "完成"
Else
MsgBox "没有对你的系统进行任何改变。" & vbcr & vbcr & "?Kelly Theriot and Doug Knox", 4096, "用户取消了"
End If
huangqixiong1 2008-6-26 09:59
楼主写的不知道是详细 还是复杂 我好象一头雾水 有没有方便的工具能帮助解决呢?:teeth :teeth
kkaien 2008-6-26 10:32
楼主这个方法系统里要有VB运行库啊!所以不是每台电脑都能运行的。
还不如直接看看这个VB代码的执行内容,然后直接到注册表里去修改就好了。
我个人觉得,一般都用不上这玩意,也不用这么麻烦。如果任务栏混乱了,重新启动一下计算机可能就好了。
kkaien 2008-6-26 10:50
这脚本写的有问题啊!
[code]p1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\本地User\Software\Microsoft\Windows\CurrentVersion\Policies\ Explorer\"[/code]
这句定义的地址字符串明显是不对的,应该是:
[code]p1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\ Explorer\"[/code]
另外,程序中这段:
[code]For Each Process in GetObject("winmgmts:"). _
ExecQuery ("select * from Win32_Process where name='explorer.exe'")
Process.terminate(0)
Next[/code]
会关闭explorer.exe进程的,执行后你的桌面就消失了,屏幕上就只能看到墙纸。
而程序最后又没有重新启动外壳的命令,所以,有时候,你可能就一直停留在无桌面环境下了。不懂得如何重启explorer外壳的人估计只有按电源开关了
tangtangbobo 2008-6-26 13:19
将代码放到记事本里,保存好在修改成bat格式就可以了
bugong111 2008-9-11 12:49
我试试去,谢谢楼主,你的帖子好棒,支持你加油.