c++ - 检查文件是由进程创建的还是用户使用 C++ 创建的

标签 c++ windows visual-studio-2010 winapi filesystems

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

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

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

我如何才能只监控用户手动完成的文件更改(即仅由用户在鼠标或键盘的帮助下启动的更改)。

最佳答案

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

关于c++ - 检查文件是由进程创建的还是用户使用 C++ 创建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14144522/

相关文章:

c++ - C++中使用跳转表实现switch语句

c++ - 在 Windows 7/8/10 Win32 C++ 中检测/识别显示器连接的端口(HDMI、其他)

c++ - CMake 安装到/bin

c++ - 发现用户是否具有管理员权限

c++ - 怎么可能知道是什么导致了异常

c++ - 使用新的外部函数范围声明和初始化变量

c - 如何在/使用 Visual Studio 2010 中为 64 位 Windows 构建 libcurl?

c++ - 自动更新 QLabel 文本

windows - 是否可以将熵从硬件 RNG 添加到 Windows CryptoAPI?

c++ - 这两种包含相同 header 的方式在编译器中是否发生了不同的事情?