找回密码
 加入
搜索
查看: 12972|回复: 32

[AU3基础] 如何防止指定文件夹的复制

 火... [复制链接]
发表于 2011-7-11 21:44:38 | 显示全部楼层 |阅读模式
本帖最后由 xms77 于 2011-7-11 21:47 编辑

在工作中碰到一个问题,机器的程序文件应该放在C:\Lc_gram, 总是发现有人把程序文件到处拷贝,造成程序混乱,我该如何实现自动监控和删除其它路径下的Lc_gram文件夹,思考了很久,没有想到好的方法来实现,有没有高人指点一下下,本人万分感谢!
发表于 2011-7-11 22:40:19 | 显示全部楼层
用拷贝钩子:ICopyHook,它是个Com接口,Shell在执行移动,拷贝,重命名或删除这些操作前,会调用ICopyHook接口的CopyCallback方法对它们进行验证。利用CopyCallback一个返回值:
IDYES表示继续,IDNO和IDCANCEL则表示终止(http://msdn.microsoft.com/en-us/library/bb776048(v=vs.85).aspx)
但有点麻烦的是Shell并不会把上面的结果返回给你的处理程序,所以为了完全监控,你还得调用WinAPI的两个函数:FindFirstChangeNotification以及FindNextChangeNotification,结合起来就可以实现你的问题了
发表于 2011-7-12 01:26:16 | 显示全部楼层
回复 1# xms77

有一个简单办法,监控粘贴板.
While 1
        Sleep(100)
        $copy = ClipGet();监控粘贴板
        If $copy = "C:\Lc_gram" Then;如果粘贴板的内容是"C:\Lc_gram"
                ClipPut("");清空粘贴板
        EndIf
WEnd


这样也可以防止指定文件夹的复制.
发表于 2011-7-12 01:41:48 | 显示全部楼层
回复 3# lixiaolong


    好办法 , mark
发表于 2011-7-12 01:45:20 | 显示全部楼层
回复 3# lixiaolong


    这也行?你试过了吗?
发表于 2011-7-12 02:39:06 | 显示全部楼层
回复 5# happytc


    这可是好方法 ,快去试试
发表于 2011-7-12 02:55:21 | 显示全部楼层
回复 6# a62105400


    没啥试头,一看就知道了:这样只是对Ctrl+C或者右键点复制后有效。

但其实一般用户用得最多却是用拖动来实现复制粘贴的
发表于 2011-7-12 07:37:46 | 显示全部楼层
楼主把文件的权限修改下试试,不知道行不行,只是个想法
发表于 2011-7-12 09:11:22 | 显示全部楼层
还有没有其他办法呢
 楼主| 发表于 2011-7-12 12:36:05 | 显示全部楼层
回复 2# happytc
谢谢,不是很理解,看来比较麻烦!
 楼主| 发表于 2011-7-12 12:38:24 | 显示全部楼层
回复 3# lixiaolong
灰常谢谢,试试看
 楼主| 发表于 2011-7-12 12:39:15 | 显示全部楼层
回复 8# netegg
win98系统,修改文件权限是没有办法的。
 楼主| 发表于 2011-7-12 13:39:30 | 显示全部楼层
回复 3# lixiaolong [/
试过了,可以防止拷贝粘贴,但是不能防止拖动。
发表于 2011-7-12 14:27:31 | 显示全部楼层
有是hook,呵呵
发表于 2011-7-12 18:17:01 | 显示全部楼层
回复 5# happytc

我试过了可以,不过不能防止拖动.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-8 17:13 , Processed in 0.088316 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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