有没有办法检测删除文件之前,Windows执行删除? 我发现FileSystemWatcher类,但只有在执行删除操作后才会引发事件,但是我想在用户/进程select删除操作时捕获删除操作。 您可以监视文件系统表,但要寻找更好的方法。 谢谢你的帮助。
如果我对Windows服务进行了更改,是否必须运行installutil.exe?
在Mac和Windows上打开相同的.NET Core解决scheme
Windows批处理脚本中的文件/文件夹select器对话框
.NET安全策略由标准用户更改?
支持阿拉伯字符从右到左
我认为最简单的方法是使用钩子来通知(并最终停止)该进程。 它不能在.NET中完成,所以你必须DllImport很多结构和P / Invoke功能很少。
让我们用NtSetFile@R_121_4045@ion (无文档)函数开始您的工作。 当一个文件需要被删除(使用Filedisposition@R_121_4045@ion结构)时,这是由其他任何东西调用的函数。
现在的问题是如何挂钩功能(祝你好运,这是不容易的)。 一个很好的选择可以使用Microsoft Detours 。 看看这篇文章的例子。 它的问题是它不是免费的。 一个替代的解决方案(价格合理,.NET界面)是Deviare,但我从来没有试过甚至免费的版本,所以我不知道它有多好。 如果别人知道一个好的拦截工具…
你需要一个文件系统过滤驱动程序。 不过,我强烈建议,如果你不知道答案,你可能不应该这样做。
http://msdn.microsoft.com/en-us/library/windows/hardware/gg462968.aspx
或者可以试试IcopyHook接口。
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776049%28v=vs.85%29.aspx
在copyCallback方法中使用wFunc参数中的FO_DELETE来指定删除操作。
缺点:只能防止在Windows Shell中删除。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。