好友
阅读权限10
听众
最后登录1970-1-1
|
昨天在悬赏区看到一个贴,然后写了个小工具,大家可以用用看
有好的建议或者bug问题欢迎多多提出
编写语言:易语言
悬赏贴地址:文件夹的属性是“只读”,无法更改 - 吾爱破解 - 52pojie.cn
功能简单演示:
1.工具整体面貌
2.选择要修改的文件夹
3.选择要修改的权限选项,这里选了拒绝
4.修改后文件成功不能访问
5.这里修改属性失败,是正确的,因为刚才设置了决绝访问
所以现在拿这个文件没有办法,改不掉
6.这里给它移除了刚才的拒绝权限,成功
7.成功隐藏
经过测试,即使目录在其它盘符,D、E等盘符,盘符由于操作系统限制为只读也可以正常修改
我的OS为Win11测试目前没有问题,不同操作系统问题欢迎大家发出进行修正。
源码如下:
[Visual Basic] 纯文本查看 复制代码 .版本 2
.支持库 shell
.支持库 iext
.程序集 窗口程序集_启动窗口
.子程序 _修改目录权限_被单击
.局部变量 执行状态, 逻辑型
.如果真 (文件夹路径 = “”)
信息框 (“文件夹路径不可为空”, 0, , )
写日志 (“文件夹路径不可为空”)
返回 ()
.如果真结束
执行状态 = 置文件属性 (文件夹路径, 选择项)
.如果真 (执行状态 = 真)
信息框 (“修改成功”, 0, , )
写日志 (“修改成功”)
' 改完禁用目录权限修改,保证每次必须先修改用户权限
修改目录权限.禁止 = 真
只读单选框.禁止 = 真
隐藏单选框.禁止 = 真
普通单选框.禁止 = 真
系统单选框.禁止 = 真
' 启用用户权限修改
修改用户权限.禁止 = 假
赋予用户完全控制权限单选框.禁止 = 假
继承父文件夹权限单选框.禁止 = 假
拒绝用户所有访问权限单选框.禁止 = 假
移除特定用户权限单选框.禁止 = 假
重新修改用户权限.可视 = 假
返回 ()
.如果真结束
信息框 (“修改失败”, 0, , )
写日志 (“修改失败”)
.子程序 _只读单选框_被单击
选择项 = 1
.子程序 _隐藏单选框_被单击
选择项 = 2
.子程序 _系统单选框_被单击
选择项 = 4
.子程序 _普通单选框_被单击
选择项 = 128
.子程序 _退出软件_被单击
结束 ()
.子程序 _以管理员身份运行_被单击
.局部变量 时间, 文本型
ShellExecute (0, “runas”, 取运行目录 () + “\” + 取执行文件名 (), “”, “”, 1)
写日志 (“以管理员身份启动”)
结束 ()
.子程序 _修改用户权限_被单击
.局部变量 最终指令, 文本型
.如果真 (文件夹路径 = “”)
信息框 (“文件夹路径不可为空”, 0, , )
写日志 (“文件夹路径不可为空”)
返回 ()
.如果真结束
.如果真 (权限修改运行指令 = “”)
信息框 (“请先选择一个权限操作类型”, 0, , )
写日志 (“未选择任何权限操作”)
返回 ()
.如果真结束
' 最终指令 = “icacls ” + #引号 + 文件夹路径 + #引号 + “ /inheritance:d ” + 权限修改运行指令 + “ /c”
最终指令 = “icacls ” + #引号 + 文件夹路径 + #引号 + “ ” + 权限修改运行指令 + “ /c”
写日志 (“即将执行: ” + 最终指令)
运行 (最终指令, 真, 0)
.如果真 (取错误码 () = 0)
信息框 (“修改成功”, 0, , )
写日志 (“修改成功”)
修改用户权限.禁止 = 真
修改目录权限.禁止 = 假
只读单选框.禁止 = 假
隐藏单选框.禁止 = 假
普通单选框.禁止 = 假
系统单选框.禁止 = 假
赋予用户完全控制权限单选框.禁止 = 真
继承父文件夹权限单选框.禁止 = 真
拒绝用户所有访问权限单选框.禁止 = 真
移除特定用户权限单选框.禁止 = 真
重新修改用户权限.可视 = 真
返回 ()
.如果真结束
信息框 (“修改失败”, 0, , )
写日志 (“修改失败”)
.子程序 _赋予用户完全控制权限单选框_被单击
权限修改运行指令 = “/grant:r Everyone:(OI)(CI)F /t”
' 信息框 (权限修改运行指令, 0, , )
.子程序 _继承父文件夹权限单选框_被单击
权限修改运行指令 = “/inheritance:e”
.子程序 _拒绝用户所有访问权限单选框_被单击
权限修改运行指令 = “/deny Everyone:(OI)(CI)F /t”
.子程序 _移除特定用户权限单选框_被单击
权限修改运行指令 = “/remove Everyone /t”
.子程序 _选择文件夹_被单击
.局部变量 路径, 文本型
路径 = 浏览文件夹 (“请选择要解锁权限的文件夹”, )
.如果真 (路径 ≠ “”)
要修改的文件路径.内容 = 路径
文件夹路径 = 路径
写日志 (“已选择文件夹: ” + 路径)
返回 ()
.如果真结束
信息框 (“选择文件夹路径不可为空”, 0, , )
写日志 (“选择文件夹路径不可为空”)
.子程序 __启动窗口_创建完毕
' 初始必须先修改权限,才能再修改属性,必要操作由OS限制决定
修改目录权限.禁止 = 真
只读单选框.禁止 = 真
隐藏单选框.禁止 = 真
普通单选框.禁止 = 真
系统单选框.禁止 = 真
重新修改用户权限.可视 = 假
.子程序 _重新修改用户权限_被单击
' 当点击重新修改用户权限后,更新修改属性单选和按钮为禁用
只读单选框.禁止 = 真
隐藏单选框.禁止 = 真
普通单选框.禁止 = 真
系统单选框.禁止 = 真
修改目录权限.禁止 = 真
' 当点击重新修改用户权限后,更新修改用户权限单选框和按钮为正常
修改用户权限.禁止 = 假
赋予用户完全控制权限单选框.禁止 = 假
继承父文件夹权限单选框.禁止 = 假
拒绝用户所有访问权限单选框.禁止 = 假
移除特定用户权限单选框.禁止 = 假
' 隐藏按钮本身
重新修改用户权限.可视 = 假
写日志 (“已重置权限修改状态”)
.子程序 写日志
.参数 消息, 文本型
.局部变量 索引, 整数型
.局部变量 时间, 文本型
时间 = 到文本 (取现行时间 ())
索引 = 日志列表框.插入表项 (, , , , , )
日志列表框.置标题 (索引, 0, 时间)
日志列表框.置标题 (索引, 1, 消息)
日志列表框.保证显示 (索引)
[Visual Basic] 纯文本查看 复制代码 .版本 2
.全局变量 选择项, 整数型
.全局变量 权限修改运行指令, 文本型
.全局变量 文件夹路径, 文本型
[Visual Basic] 纯文本查看 复制代码 .版本 2
.DLL命令 ShellExecute, 整数型, "shell32.dll", "ShellExecuteA", 公开
.参数 hwnd, 整数型
.参数 lpOperation, 文本型
.参数 lpFile, 文本型
.参数 lpParameters, 文本型
.参数 lpDirectory, 文本型
.参数 nShowCmd, 整数型
开发过程(AI润色总结版):
关键约束:Windows 系统中,要修改文件属性,必须先确保当前用户对该文件/文件夹拥有足够的 NTFS 权限。
因此工具的流程设计为:
- 必须先执行“修改用户权限”(调用 icacls)
- 成功后,才能启用“修改目录权限”(调用 置文件属性)
- 修改文件属性成功后,界面恢复状态,允许再次修改 NTFS 权限(形成闭环)
典型踩坑与解决- icacls 总失败 → 硬编码参数与用户选择冲突,改为纯动态拼接。
- 运行结果误判 → 运行(..., 假) 只表示进程启动,改用 真 等待并取错误码。
文件夹属性与权限修改工具.rar
(309.06 KB, 下载次数: 85)
|
免费评分
-
查看全部评分
|