0

我有一个沙盒系统通过挂钩 Ntxxx 文件系统 API 来重定向文件修改。有趣的是,如果我在我的沙盒中的记事本->文件/打开对话框中移动文件,例如从桌面\a.txt 到桌面\b\a.txt,真实桌面上的 a.txt 文件就会消失,它按 F5 刷新真实桌面后返回。实际上桌面文件夹根本没有变化,因为所有更改都是定向的。我知道大多数应用程序使用像 ReadDirectoryChanges 这样的 API 来监视更改,但显然资源管理器正在做一些不同的事情。我试过像https://directorymonitor.com/这样的工具,他们没有观察到桌面上的任何变化。我猜 SHFileOperation 以某种方式在内部与资源管理器进行交互,但是谁知道细节以及如何防止此通知?用户看到一个文件实际上还在那里就消失了,这真的很奇怪。

4

1 回答 1

0

windows 调用 windows_storage!SHChangeNotify 而不是 shell32 中的那个。为什么 Windows 有两个相同 API 的副本,它们不同吗?

于 2020-09-28T12:46:14.197 回答