好久没写东西了,忙了好久的小论文。
涉及到一个小需求:想隐藏某一个分区,尽量不被用户看到,但是为了方便编程、维护,又希望可以通过盘符地址访问,怎么办呢?
这个问题可以通过修改注册表的方式解决:
1. 注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer下新建键值对NoDrives,类型选择DWORD就好
2. 对应的值value |= (1 << 盘符 >= 'a' ? 盘符 - 'a' : 盘符 - 'A'))
3. 重启Windows资源管理器
一个小demo放到GitHub了 :https://github.com/Hilaver/partition-hiding
下面是代码
HKEY hKey = NULL;
TCHAR *subKey;
LONG lReturned = 0;
DWORD dwMusk = 0x00;
char volLetter[512];
printf("输入要隐藏的盘符(如C,D,F):");
scanf_s("%s",volLetter,sizeof(volLetter));
for (int i = 0; i < strlen(volLetter); i++) {
if ((volLetter[i] >= 'a'&&volLetter[i] <= 'z') || (volLetter[i] &