中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [转贴][VBS]重置Vista所有文件夹显示风格
作者:
标题: [转贴][VBS]重置Vista所有文件夹显示风格 上一主题 | 下一主题
estar
中级用户





积分 346
发帖 103
注册 2004-4-6
状态 离线
『楼 主』:  [转贴][VBS]重置Vista所有文件夹显示风格

原帖地址:
http://www.visualbasicscript.com/m_44321/tm.htm

Vista用久了,文件夹显示就及其混乱,比如说详细信息的作者、专辑、#等。这个VBS可以把所有文件夹显示风格设置为初始状态。
'==========================================================================
'
' SCRIPT NAME: ClearAllFoldersColumnSettings.vbs
'
' AUTHOR: DiGiTAL.SkReAM
' DATE  : 3/10/2007
'
' COMMENT: This script will erase the registry key which contains the folder customization settings
'   for the current user.  This will force all folder customization settings for the current
'   user to be set back to the defaults.
'==========================================================================
Option Explicit
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_USERS = &H80000003
Dim oShell, oFSO, oEnv, oNet, sSubKey, aSubKeys, s
Set oShell = CreateObject("Wscript.Shell")
GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv").EnumKey _
HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\InternetRegistry\REGISTRY\USER", aSubKeys
For Each sSubKey In aSubKeys
fKillRegKey "HKEY_USERS\" & sSubkey & "_Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags"
Next
Function fKillRegKey(ByVal sKeyToDelete)
Dim aSubKeys, sSubKey, iSubkeyCheck, sKeyToKill, iElement
Dim aKeyPathSubSection, hKeyRoot, oWMIReg, strKeyRoot
aKeyPathSubSection = Split(sKeyToDelete, "\")
hKeyRoot = HKEY_USERS
strKeyRoot = "HKEY_USERS"
For iElement = 1 To UBound(aKeyPathSubSection)
  sKeyToKill = sKeyToKill & "\" & aKeyPathSubSection(iElement)   
Next
If Left(sKeyToKill,1) = "\" Then sKeyToKill = Right(sKeyToKill, Len(sKeyToKill)-1)
'Errors will be generated when there are no subkeys during recursion - this is normal and expected
On Error Resume Next
Set oWMIReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
iSubkeyCheck = oWMIReg.EnumKey(hKeyRoot, sKeyToKill, aSubKeys)
If iSubkeyCheck = 0 And IsArray(aSubKeys) Then
   For Each sSubKey In aSubKeys
     If Err.Number <> 0 Then
      Err.Clear
      Exit Function
     End If
    'Recursively call this function, to delete each subkey - and their subkeys, and so on...
    fKillRegKey strKeyRoot & "\" & sKeyToKill & "\" & sSubKey
   Next
End If
'if the key has no subkeys, delete it.
oShell.RegDelete strKeyRoot & "\" & sKeyToKill & "\"
End Function
[ Last edited by estar on 2007-3-26 at 03:52 AM ]

2007-3-26 03:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 2 楼』:  

这么说VISTA也支持VBS了?这是我一直想知道的...

2007-3-26 05:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
estar
中级用户





积分 346
发帖 103
注册 2004-4-6
状态 离线
『第 3 楼』:  

汗一个,哪个Windows不支持VBS就没得救啦。VBS是Windows及其重要的一个部分

2007-3-26 06:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: