hipeng 发表于 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

mcknight1013 发表于 2009-4-12 13:18:38

cacls %system%\fonts /t /e /c /p everyone:f <d:y.txt
少了一 \杠。

lynfr8 发表于 2009-5-30 19:14:48

http://www.autoitx.com/forum.php?mod=viewthread&tid=1099

pusofalse 发表于 2009-5-30 21:24:03

LocalSecurityAuthority.au3
http://www.autoitx.com/forum.php?mod=viewthread&tid=7080&extra=page%3D1

lynfr8 发表于 2009-5-30 21:26:39

pusofalse 搞来的这个东西是好东东啊,多加灵活应用

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 = [["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
页: [1]
查看完整版本: 有没有给文件增加访问权限的方法?