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

解决方案 »

  1.   

    不知道用DOS修改权文件夹访问权限哎。
    用VB调用某些API应该可以做到吧
      

  2.   

    用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       拒绝指定用户的访问。
    在命令中可以使用通配符指定多个文件。
    也可以在命令中指定多个用户。
      

  3.   

    这是我从网上抄来的。
    楼主自己看看
    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