首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

用VB SHELL怎么对注册表内文件夹进行权限修改

2012-01-15 
用VB SHELL如何对注册表内文件夹进行权限修改用VB SHELL如何对注册表内文件夹进行权限修改我现在写了点用V

用VB SHELL如何对注册表内文件夹进行权限修改
用VB SHELL如何对注册表内文件夹进行权限修改
我现在写了点用VB对注册表进行增删改
但是我现在需要对一个文件夹进行修改权限我不知道改如何修改了!
求大大帮助

[解决办法]
用shell函数调用cacls.exe吧
c:\>cacls
显示或者修改文件的访问控制表(ACL)

CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]
[/P user:perm [...]] [/D user [...]]
filename 显示 ACL。
/T 更改当前目录及其所有子目录中
指定文件的 ACL。
/E 编辑 ACL 而不替换。
/C 在出现拒绝访问错误时继续。
/G user:perm 赋予指定用户访问权限。
Perm 可以是: R 读取
W 写入
C 更改(写入)
F 完全控制
/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
/P user:perm 替换指定用户的访问权限。
Perm 可以是: N 无
R 读取
W 写入
C 更改(写入)
F 完全控制
/D user 拒绝指定用户的访问。
在命令中可以使用通配符指定多个文件。
也可以在命令中指定多个用户。
[解决办法]
这是我从网上抄来的。
楼主自己看看
Set objShell = CreateObject("WScript.Shell") 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
  
strComputer = "." 
strRegSettings = Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "RegSettings.ini" 
strRegKey = "SYSTEM\ControlSet001\Enum\USB\Vid_0bc7&Pid_0002\" 
  
Const HKEY_LOCAL_MACHINE = &H80000002 
Set objRegistry = GetObject("winmgmts:" & _ 
"{impersonationLevel=Impersonate}!\\" & _ 
strComputer & "\root\default:StdRegProv") 
  
If Right(strRegKey, 1) = "\" Then 
strResults = "\Registry\Machine\" & Left(strRegKey, Len(strRegKey) - 1) & " [17 7]" & VbCrLf 
Else 
strResults = "\Registry\Machine\" & strRegKey & " [17 7]" & VbCrLf 
End If 
  
EnumRegKeys HKEY_LOCAL_MACHINE, strRegKey 
  
Set objFile = objFSO.CreateTextFile(strRegSettings, True) 
objFile.Write strResults 
objFile.Close 
Set objFile = Nothing 
  
strCommand = "regini """ & strRegSettings & """" 
objShell.Run strCommand, 0, True 
  
MsgBox "Done." 
  
Sub EnumRegKeys(strRegRoot, strKey) 
'Returns a non-zero return value if the key does not exist 
If objRegistry.EnumKey(strRegRoot, strKey, arrKeyNames) = 0 Then 
If IsNull(arrKeyNames) = False Then 
For Each strKeyName In arrKeyNames 
If Right(strKey, 1) = "\" Then 
strFullPath = strKey & strKeyName 
Else 
strFullPath = strKey & "\" & strKeyName 
End If 
strResults = strResults & "\Registry\Machine\" & strFullPath & " [17 7]" & VbCrLf 
EnumRegKeys strRegRoot, strFullPath 
Next 
End If 
End If 
End Sub

热点排行