现在如果有E盘,我想把它隐藏起来,就是在“我的电脑”里不能看见这个分区,但是它实际上还是存在的,同时我也要可以对E盘里的一些文件啊目录什么的进行操作,可以吗?

解决方案 »

  1.   

    可直接修改注册表,或使用windows优化大师!!!
      

  2.   

    打开注册表进入以下路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
    新建键值NoDrives,这个键的键值就是隐藏盘符的关键了,下面是一张隐藏数值例表(二进制).盘符 A B C D E F G H (八位分别对应八个字母(盘符)
    数值 01000000 02000000 04000000 08000000 10000000 20000000 40000000 80000000 
    盘符 I J K L M N O P 
    数值 00010000 00020000 00040000 00080000 00100000 00200000 00400000 00800000 
    盘符 Q R S T U V W X 
    数值 00000100 00000200 00000400 00000800 00001000 00002000 00004000 00008000 
    盘符 Y Z       
    数值 00000001 00000002
      

  3.   

    打开注册表进入以下路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
    新建键值NoDrives,这个键的键值就是隐藏盘符的关键了,下面是一张隐藏数值例表(二进制).盘符 A B C D E F G H (八位分别对应八个字母(盘符)
    数值 01000000 02000000 04000000 08000000 10000000 20000000 40000000 80000000 
    盘符 I J K L M N O P 
    数值 00010000 00020000 00040000 00080000 00100000 00200000 00400000 00800000 
    盘符 Q R S T U V W X 
    数值 00000100 00000200 00000400 00000800 00001000 00002000 00004000 00008000 
    盘符 Y Z       
    数值 00000001 00000002
    ========================================================
    同意,也可以写成DWORLD型
      

  4.   

    需要重新启动,兔子也要重启Option Explicit
    Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
    Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
    Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Private Declare Function PaintDesktop Lib "user32" (ByVal hdc As Long) As LongConst ERROR_SUCCESS = 0&
    Const ERROR_BADDB = 1009&
    Const ERROR_BADKEY = 1010&
    Const ERROR_CANTOPEN = 1011&
    Const ERROR_CANTREAD = 1012&
    Const ERROR_CANTWRITE = 1013&
    Const ERROR_REGISTRY_RECOVERED = 1014&
    Const ERROR_REGISTRY_CORRUPT = 1015&
    Const ERROR_REGISTRY_IO_FAILED = 1016&
    Const HKEY_CLASSES_ROOT = &H80000000
    Const HKEY_CURRENT_USER = &H80000001
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const REG_SZ = 1
    Private Sub Command1_Click()
    Dim retvalue As Long, result As Long
    Dim KeyID As Long, keyvalue As Long
    Dim subKey As String
    Dim bufSize As Long
    Dim regkey As String
    Dim abc As Long
    Dim a1 As Long
    Dim hCurKey As Long
    Dim lRegResult As Long
    Dim s As String
    Dim a As String
    'check1代表a盘,.......check8代表h
    If Check1.Value = 1 Then
        Check1.Tag = 1
    Else
        Check1.Tag = 0
    End IfIf Check2.Value = 1 Then
        Check2.Tag = 2
    Else
        Check2.Tag = 0
    End If
    If Check3.Value = 1 Then
        Check3.Tag = 4
    Else
        Check3.Tag = 0
    End IfIf Check4.Value = 1 Then
        Check4.Tag = 8
    Else
        Check4.Tag = 0
    End If
    If Check5.Value = 1 Then
        Check5.Tag = 16
    Else
        Check5.Tag = 0
    End IfIf Check6.Value = 1 Then
        Check6.Tag = 32
    Else
        Check6.Tag = 0
    End If
    If Check7.Value = 1 Then
        Check7.Tag = 64
    Else
        Check7.Tag = 0
    End Ifa1 = CLng(Check1.Tag) + CLng(Check2.Tag) + CLng(Check3.Tag) _
    + CLng(Check4.Tag) + CLng(Check5.Tag) + CLng(Check6.Tag) + _
    CLng(Check7.Tag)
    If a1 = 0 Then
        s = "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
        a = "NoDrives"
        lRegResult = RegOpenKey(HKEY_CURRENT_USER, s, hCurKey)
        lRegResult = RegDeleteValue(hCurKey, a)
        lRegResult = RegCloseKey(hCurKey)
    Else
        If a1 <> 0 Then
        regkey = "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
        retvalue = RegCreateKey(HKEY_CURRENT_USER, regkey, KeyID)
        subKey = "NoDrives"
        keyvalue = a1
        retvalue = RegSetValueEx(KeyID, subKey, 0&, 4, keyvalue, 4)
    End If
    End If
    End SubPrivate Sub Command2_Click()
    Dim retvalue As Long, result As Long
    Dim KeyID As Long, keyvalue As Long
    Dim subKey As String
    Dim bufSize As Long
    Dim regkey As String
    Dim abc As Long
    Dim a1 As Long
    Dim hCurKey As Long
    Dim lRegResult As Long
    Dim s As String
    Dim a As String
     s = "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
     a = "NoDrives"
     lRegResult = RegOpenKey(HKEY_CURRENT_USER, s, hCurKey)
     lRegResult = RegDeleteValue(hCurKey, a)
     lRegResult = RegCloseKey(hCurKey)
    End Sub
      

  5.   

    我是2000pro系统可以吗?
    我希望不重启就实现,可以吗?
      

  6.   

    up
    修改注册表
    Software\Microsoft\Windows\CurrentVersion\Policies\Explorer下
    NoDrives值
      

  7.   

    我改过NoDrives的值了,一定要重新启动才可以,我想知道有没有可能编程实现,并且不重新启动机器的办法
      

  8.   

    今天偶然发现一种隐藏分区的办法,而且绝对不需要重启机器。
    i)可以通过修改注册表来隐藏硬盘(光驱)。开始-运行-regedit-进入注册表,在主键HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\Policies\Explorer下建立键值“NoDrives”,16进制数缺省时是00000000。改成10进制数,如果你要隐藏C盘,就把00000000改为4;隐藏D盘,就改为8;隐藏C、D盘,就改为12。依次类推。删除“NoDrives”后就可以恢复所有驱动器的正常显示。(原来的方法到这里就要重启了,我们这里先不重启,继续下面的操作)ii) 第一步,进入注册表(运行regedit),将HKEY_LOCAL_MACHINE主键下子键Software/Microsoft/Windows/CurrentVerssion/explorer/Advanced/Folder/Hidden/SHOWALL下的值CheckedValue改为0。
      第二步,查看(工具)-文件夹选项-查看-选中“显示所有文件”。
      这样就无法看隐藏属性的文件夹了。只能在地址栏中输入完整的路径进入该文件夹。上述i)ii)步结合起来就可以实现隐藏分区了,但是其中ii)第二步不知道如何编程实现。请各位大侠帮帮忙看看吧,谢谢拉~~~
    ^_^
      

  9.   

    可以不启动,在执行完  online(龙卷风V3.0--笑傲江湖)大侠的那段程序之后, 再调用一次windows的API通知windows刷新就可以了: PostMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0&, 0&)
      

  10.   

    PostMessage在Win2000下不起作用啊,大哥,还有什么类似的办法吗?谢谢拉
      

  11.   

    真实奇怪了,有没有使用postmessage函数,或者有没有设置我前面提到的ii)第一步,只要先更改NoDrives键值后,再执行ii)第二步,都可以实现隐藏分区的效果,我真的要晕了。唉
      

  12.   

    打开注册表进入以下路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
    新建键值NoDrives,这个键的键值就是隐藏盘符的关键了,下面是一张隐藏数值例表(二进制).盘符 A B C D E F G H (八位分别对应八个字母(盘符)
    数值 01000000 02000000 04000000 08000000 10000000 20000000 40000000 80000000 
    盘符 I J K L M N O P 
    数值 00010000 00020000 00040000 00080000 00100000 00200000 00400000 00800000 
    盘符 Q R S T U V W X 
    数值 00000100 00000200 00000400 00000800 00001000 00002000 00004000 00008000 
    盘符 Y Z       
    数值 00000001 00000002

    再使用VB来操作注册表即可。
      

  13.   

    officecn(Hotdog)这个我可以通过VB里操作注册表修改的,但是一定要重新启动机器才能看到效果
    我现在就是想不重启,还能隐藏分区,这有什么办法吗?要全自动哦
      

  14.   

    不要光MARK嘛兄弟,请你也来帮帮忙拉