好久没写东西了,忙了好久的小论文。

涉及到一个小需求:想隐藏某一个分区,尽量不被用户看到,但是为了方便编程、维护,又希望可以通过盘符地址访问,怎么办呢?

这个问题可以通过修改注册表的方式解决:

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] >= 'A'&&volLetter[i] <= 'Z')) {dwMusk |= (1 << (volLetter[i] >= 'a' ? volLetter[i] - 'a' : volLetter[i] - 'A'));}}if (RegCreateKeyEx(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"),0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL) != ERROR_SUCCESS){printf("创建/打开注册表键失败[%d]\n", GetLastError());getchar();return -1;}lReturned = RegSetValueEx(hKey, _T("NoDrives"), 0, REG_DWORD, (LPBYTE)&dwMusk, (DWORD)sizeof(dwMusk));if (lReturned != ERROR_SUCCESS){//// 写入注册表退出标志位失败//printf("更新注册表键失败[%d]\n", GetLastError());getchar();return -1;}RegCloseKey(hKey);printf("注册表修改成功\n");system("taskkill -im explorer.exe -f");system("ping -n 2 127.0.0.1 > nul");system("start c:\\windows\\explorer.exe");printf("重启资源管理器\n");printf("修改成功\n");getchar();

在资源管理器中隐藏指定分区相关推荐

  1. 在 Visual Studio 的解决方案资源管理器中隐藏一些文件

    项目文件中有一些属性几乎是专门为 IDE 而准备的,不过考虑到 .NET 生态的开发者多数都使用 Visual Studio,所以基本上也只有 Visual Studio 对这些特性支持的最全面.(才 ...

  2. elementui如何在input 框中搜索_在 Windows 10 中的文件资源管理器中删除搜索历史记录...

    Windows 资源管理器带有搜索功能,用户可以通过该功能找到特定的文件或文件夹.默认情况下,您在搜索框中进行的所有搜索都会保存到其历史记录中.下次您在搜索框中输入内容时,它将在下拉对话框中显示最近输 ...

  3. Windows 10 删除资源管理器中7个文件夹

    Windows 10 安装完成之后 ,在资源管理器中会存在 7 个文件夹,他们分别是:图片.视频.下载.音乐.桌面.文档.3D对象. 我们可以通过修改注册表的方式,隐藏这7个文件夹.相关注册表内容如下 ...

  4. 软件卸载后残留的文件无法删除(在Windows资源管理器中打开)解决方案

    软件卸载后在软件安装路径发现有残留,但是删除的时候提示无法删除.在Windows资源管理器中打开. 解决方案: window键+R 打开命令行 输入tasklist /m文件名.dll(注意有空格), ...

  5. Window删除dll文件时提示“操作无法完成,因为文件已在Windows 资源管理器中打开”

    问题描述 Windows删除dll文件时提示"操作无法完成,因为文件已在Windows 资源管理器中打开". 但是在资源管理器里面找不到这个进程,此时可以使用CMD的tasklis ...

  6. “解决方案资源管理器”中不能自动选择正在编辑的文档

    本来正在编辑的文档应该在"解决方案资源管理器"中自动选中的,但是我的VS2005机器好像没有这个功能,后来发现 "工具->选贤"里边的"项目和解 ...

  7. 调整Win7资源管理器中导航栏和计算机的位置

    原文:http://blog.163.com/roc_sp/blog/static/39012041201141111280971/ 在默认情况下,Win7资源管理器中的计算机是排在库下面的,本文的目 ...

  8. vs的资源管理器中一次性添加整个文件夹

    如何在vs的资源管理器中一次性添加整个文件夹   如何一次添加整个文件夹到vs资源管理器中? 1.将你想要添加的文件夹复制到你想要添加的项目当中 2.打开你所在的项目,点击项目,在菜单中,项目-> ...

  9. 扩展Visual Studio 2010服务器资源管理器中的SharePoint结点

    Visual Studio 2010最大的卖点就是可扩展性.这样就可以借助.NET社区的力量基于VS构建出许多有用的工具.本文中我们将展示如何扩展VS2010的服务器资源管理器,在其中的SharePo ...

最新文章

  1. 经典C语言程序100例之七七
  2. virtualbox+vagrant安装虚拟机
  3. 【图像超分辨率】Remote Sensing Imagery Super Resolution Based on Adaptive Multi-Scale Feature Fusion Network
  4. 微软黑屏补丁_慎装微软最新Win7补丁 部分用户更新补丁后无法关机
  5. 拯救运维工程师,数据链 DNA 来袭!
  6. 用python和sympy库解决方程组问题_Python语言 SymPy库数学方程问题——线性方程组篇...
  7. MongoDB之GridFS
  8. 9-Mybatis 多表查询之一对多
  9. python中反射(__import__和getattr使用)
  10. Juniper设备管理
  11. PE格式第八讲,TLS表(线程局部存储)
  12. LSTM 手动实现车牌识别 Pytorch代码
  13. ubuntu安装包常用下载地址
  14. 2018年腾讯笔试题(今年更难了)
  15. C语言编程判断字母大小并转换,towupper()
  16. 命令启动oracle实例,【单选题】启动oracle数据库实例的命令是
  17. Cocos Creator人物血条渐变舒缓实现
  18. Java九阳神功-内部类
  19. 树型拓扑计算机网络的缺点是,拓扑结构的优缺点_网状拓扑结构特点_总线的优缺点...
  20. 邮箱如何群发邮件,公司邮件群发教程

热门文章

  1. 计算机车辆识别检测毕业设计,计算机毕业设计(论文)-基于视频的车辆检测系统【全套设计】.doc...
  2. 入网认证遇到的安全受控机制的问题---之Android 5.1.1 AppOps与严格模式
  3. c#——Word表格中插入头像
  4. 为什么玩转Power BI一定需要Office 365
  5. Java导出多个excel并压缩下载
  6. 易语言 网页_取文本_reg的源码
  7. 如何制作一个在线订酒店的小程序
  8. 懂车帝视频连接--JS逆向
  9. 读取raw格式数据,OpenCV显示
  10. Purdue, Mathematics Area Examination 学习笔记(1)