找回密码
 加入
搜索
查看: 2469|回复: 5

有没有给文件增加访问权限的方法?

[复制链接]
发表于 2009-4-12 10:12:59 | 显示全部楼层 |阅读模式
我想写一个程序,就是打开CAD之前禁止当前用户访问C:\WINDOWS\FONTS,CAD打开后再释放权限.
这样就可提高CAD打开速度.
但是AU中有没有修改文件权限的函数呢?请大家告诉一下.另外还有没有其它思路.

下面是我用批处理写的,只支持NTFS格式磁盘

ECHO 首次运行,请修改下面的CAD路径(C:\Program Files\AutoCAD2004\)和CAD名字:ACAD
echo y>d:\y.txt
cacls %systemroot%\fonts /d %username% <d:\y.txt
cd /d C:\Program Files\AutoCAD2004\
rem 请修改上句“C:\Program Files\AutoCAD2004\”改成你的CAD路径。
acad.exe
REM 上面请修改成你的CAD文件
cacls %system%\fonts /t /e /c /p everyone:f <d:y.txt
del d:\y.txt /q
发表于 2009-4-12 13:18:38 | 显示全部楼层
cacls %system%\fonts /t /e /c /p everyone:f <d:y.txt
少了一 \  杠。
发表于 2009-5-30 19:14:48 | 显示全部楼层
发表于 2009-5-30 21:24:03 | 显示全部楼层
发表于 2009-5-30 21:26:39 | 显示全部楼层
pusofalse 搞来的这个东西是好东东啊,多加灵活应用
发表于 2009-5-30 21:47:25 | 显示全部楼层
#include <LocalSecurityAuthority.au3>

If Not IsDeclared("FILE_ALL_ACCESS") Then $FILE_ALL_ACCESS = 0x1f01ff
If Not IsDeclared("GENERIC_READ") Then $GENERIC_READ = 0x80000000

$sFile = @ScriptDir & "\Tasks.x"        ; 要设置权限的文件, 必须位于NTFS系统上。

; 定义访问权限的ACE信息,用于_SetEntriesInAcl函数返回ACL指针。
Dim $aAccess[2][4] = [["admin", $FILE_ALL_ACCESS, 1, 0], ["guest", $GENERIC_READ, 1, 0]]
; 以上,admin用户可完全控制文件(权限), guest用户只能只读。


$pAcl = _SetEntriesInAcl($aAccess, 0)

If _SetNamedSecurityInfo($sFile, $SE_FILE_OBJECT, 4, 0, 0, $pAcl, 0) Then
        Msgbox(0, "Done", "成功")
Else
        Msgbox(0, "失败", "错误码:" & @error)
EndIf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 11:02 , Processed in 0.077512 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表