如何获知文件被删除时的消息?(100分)

  • 主题发起人 主题发起人 qzq
  • 开始时间 开始时间
Q

qzq

Unregistered / Unconfirmed
GUEST, unregistred user!
我知道copy hook handler可以截获文件夹被删除,改名的消息,<br>但对于文件应该怎么做呢?我想应该有这样的shell扩展,不然我<br>删除文件时为什么windows能提示是否要放入回收站呢?
 
win32 api: &nbsp;ReadDirectoryChangesW<br>不过只在nt下有用
 
hehe,当然有了<br>深度历险就有一个这样的控件,叫Tshellnofity好象是
 
我不是仅仅想知道文件被删除的消息,<br>我是想在文件被删除之前得到消息,<br>能够取消这个操作.
 
任意的文件还是指定的文件?
 
To gcq:<br>&nbsp; &nbsp;指定的文件和任意文件有什么区别吗?我想删除一个文件不管是什么类型<br>都应该是相同的过程吧.如果一定要选,可以是指定的文件.<br>
 
我想没有你说的那种api,包括windows获得的删除前的确认只是在<br>shell程序里才行,你用delphi写一个删除文件的程序,windows根本<br>就不会有删除确认消息,包括我提到的控件也只是利用资源浏览器删除文件<br>或者其他程序用shellapi删除文件时才能得到消息.<br>我想你需要做的就是或者用截取api的方法,或者写设备驱动程序才行
 
你可以用实现一个函数,并用自己的函数调用入口替代操作系统<br>SHFileOperation、DeleteFile等你需要处理的函数。在你的函<br>数内做你需要的判断,然后再调用系统原有过程。<br>当然,你的替代API必须放在一个DLL中,然后在持续启动的时候<br>用你的函数替代系统调用。在《Windows NT 编程指南》一书的中<br>有一章讲述“穿越边界墙”技术,会有所帮助。
 
To xin_kang:<br>&nbsp; &nbsp;你所说的应该是hook技术吧,我原来想的就是如何截取删除文件时的消息,<br>但不知具体应截取那个消息,我指的都是在explorer中的情况.
 
Delphi 的 SHELLAPI.PAS<br>有关于 SHFileOperation 的说明<br>可以将文件删除、回收
 
这个问题好象DELPHI解决不了的,安装一个文件钩子,只有用VXD技术,CIH病毒是这样干的.
 
多人接受答案了。
 
后退
顶部