'屏蔽掉除C,D,E,F,光盘以外的所有盘. '函数声明及常量说明 Private Const HKEY_CURRENT_USER = &H80000001 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 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 RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Sub Form_Load() '自定义注册表 SaveStringWORD HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\_ Policies\Explorer", "NoDrives", &H1 '在注册表的Explorer下新建项"NoDrives",将其值设为你想要的,即把1改为屏蔽的值. End Sub '自定义写入注册表 Private Sub SaveStringWORD(hKey As Long, strpath As String, strvalue As String,_ strdata As String) On Error Resume Next Dim Ret As Long '定义一个空白的不可省略的注册表参数变量 Dim REG_DWORD RegCreateKey hKey, strpath, Ret '创建一个空键值 RegSetValueEx Ret, strvalue, 0, &H4, CLng(strdata), 4 '设置键项 RegCloseKey Ret '关闭此键 End Sub 相应的注册表知识: 在右窗格内新建一个二进制串值“Nodrives”,缺省值是00000000,表示不隐藏任何驱动器。键值由4个字节组成,每个字节的每一位(bit)对应从A:到Z:的一个盘,当相应位为1时,“我的电脑”中的相应驱动器就被隐藏了。第一个字节代表从A到H的8个盘,即01为A、02为B、04为C……依此类推,第二个字节代表I到P;第三个字节代表Q到X;第四个字节代表Y和Z。 若要关闭C盘,将键值改为04000000;要关闭D盘,改为08000000。 根据分析,驱动器A~Z的值依次为2的0至25次方,把要禁止的驱动器的值相加,再转换为十六进制,就是NoDrives的键值了。如要禁止A、D、E,则此键值应为1+8+16=25,转换为十六进制数为19,修改“NoDrives”的键值为“19 00 00 00”即可
'函数声明及常量说明
Private Const HKEY_CURRENT_USER = &H80000001
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 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 RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Sub Form_Load()
'自定义注册表
SaveStringWORD HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\_
Policies\Explorer", "NoDrives", &H1 '在注册表的Explorer下新建项"NoDrives",将其值设为你想要的,即把1改为屏蔽的值.
End Sub
'自定义写入注册表
Private Sub SaveStringWORD(hKey As Long, strpath As String, strvalue As String,_ strdata As String)
On Error Resume Next
Dim Ret As Long '定义一个空白的不可省略的注册表参数变量
Dim REG_DWORD
RegCreateKey hKey, strpath, Ret '创建一个空键值
RegSetValueEx Ret, strvalue, 0, &H4, CLng(strdata), 4 '设置键项
RegCloseKey Ret '关闭此键
End Sub
相应的注册表知识:
在右窗格内新建一个二进制串值“Nodrives”,缺省值是00000000,表示不隐藏任何驱动器。键值由4个字节组成,每个字节的每一位(bit)对应从A:到Z:的一个盘,当相应位为1时,“我的电脑”中的相应驱动器就被隐藏了。第一个字节代表从A到H的8个盘,即01为A、02为B、04为C……依此类推,第二个字节代表I到P;第三个字节代表Q到X;第四个字节代表Y和Z。
若要关闭C盘,将键值改为04000000;要关闭D盘,改为08000000。
根据分析,驱动器A~Z的值依次为2的0至25次方,把要禁止的驱动器的值相加,再转换为十六进制,就是NoDrives的键值了。如要禁止A、D、E,则此键值应为1+8+16=25,转换为十六进制数为19,修改“NoDrives”的键值为“19 00 00 00”即可