0

我正在查看我的系统根驱动器 (C:\) 中的所有文件和文件夹更改通知。我正在使用 ReadDirectoryChangesW() WIN API 使用 VC++ 来实现这一点,现在,我能够监视文件的所有类型的更改通知,即重命名、删除、创建......

但是,我的问题是我只想监视文件和文件夹的更改,这些更改是由用户手动完成的,而不是进程或程序。

因为,如果我使用 ReadDirectoryChangesW() WIN API 观看根文件夹,我会在短短几分钟内收到数千条更改通知,因为大多数临时文件和数据文件都是由操作系统或第三方安装的应用程序创建的......

我怎样才能只监视用户手动完成的文件更改(即仅由用户在鼠标或键盘的帮助下发起的更改)。

4

2 回答 2

3

没有办法区分用户启动的活动和应用程序启动的活动。如果您考虑一下,用户启动的活动是通过程序完成的,无论是 Windows 资源管理器本身、DOS 提示符、记事本等等。从操作系统的角度来看,一切最终都通过同一个文件系统 API,这是监控发生的地方。

于 2013-01-03T18:05:23.293 回答
1

线索最终在文件的位置。用户文档正确属于我的文档;属于应用程序的文件属于 CommonAppData,单个用户的临时文件属于他的 AppData。

当然,如果用户“手动”使用记事本打开 AppData 中的日志文件,则无法发现这一点。

于 2013-01-04T09:51:03.013 回答