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

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

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

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. 一个用微软官方的OpenXml读写Excel 目前网上不太普及的方法。
  2. Oracle 在使用pivot时,注意事项
  3. 百度地图JavascriptApi Marker平滑移动及车头指向行径方向
  4. C++lowest common ancestor最近公共祖先算法(附完整源码)
  5. mysql 5中的store function
  6. 面试题,作为产品经理你是如何应对需求变更的?
  7. 面试官系统精讲Java源码及大厂真题 - 22 ArrayBlockingQueue 源码解析
  8. laravel字符截断
  9. 绝缘端子行业调研报告 - 市场现状分析与发展前景预测
  10. Acer 4750 安装黑苹果_黑苹果 MacOS 10.15 Catalina 最新安装教程
  11. 使用docker安装部署postgres(带有postGis插件的)
  12. centos是什么linux操作系统,CentOS系统是什么
  13. 认识端口与计算机入侵防范
  14. 半导体基础知识 二极管
  15. 百度echart世界各国及国内省市经纬度坐标
  16. MATLAB学习之泰勒展开(四)
  17. 说到VDI与IDV的分分合合,不会再有比这更清晰的解释了!
  18. 小薛读论文04:预测、解决方案与滚动时域 (UTD24期刊MSOM重要综述)
  19. POJ 2125 Destroying The Graph Acwing 2325. 有向图破坏(拆点+最小权点覆盖集)
  20. 解密顺丰:内部360度监控,创始人王卫穿破牛仔裤见PE

热门文章

  1. 移动web之四种常用布局
  2. 【Android】安卓四大组件之内容提供者
  3. 证照之星2022个人版证件照编辑排版换背景软件
  4. win7如何去除计算机左边的,win7系统删除资源管理器左侧的家庭组图标方法图解...
  5. Ubuntu20.04安装,并Linux微信等
  6. html和php网站哪个好,HTML和PHP网站设计实例
  7. python提取pdf文件数据
  8. cad移动时捕捉不到基点_CAD很难学吗?其实不然,掌握这10个知识你就能走天下!...
  9. 微信小程序---手写签名(签字版)
  10. d2l.Vocab(sentences, min_freq=5, reserved_tokens=[‘<pad>‘, ‘<mask>‘, ‘<cls>‘, ‘<sep>‘]) 参数讲解