【发布时间】:2021-02-05 08:20:50
【问题描述】:
我正在编写一个实用程序,它必须跟踪安装。
此安装会在我的计算机上创建哪些目录和文件。
语言是c#.net,操作系统是windows。
到目前为止,我使用了 FileWatcher,这是前进的一步,但是您必须清理很多操作系统噪音,最终结果是一个带有文件系统更改的文本文件,并且容易出错,导致无法使用。
我什至对其进行了过滤,以便仅跟踪运行安装的用户(BUILTIN\Administrators)的事件,但仍然有很多噪音。
.
.
.
owner = (new FileInfo(e.FullPath).GetAccessControl().GetOwner(typeof(SecurityIdentifier)).Translate(typeof(NTAccount)) as NTAccount).Value;
if (owner.Contains("BUILTIN\\" + "Administratorer"))
{
eventList.Add(">" + e.FullPath + "<" + e.ChangeType + ":" + owner);
}
.
.
.
我也尝试使用 microsoft 的“handle64.exe -p processname.exe”的输出,但它只拍摄快照,在安装过程中无法继续运行。
有没有人知道如何在 c# 中实现它,或者是否有可能。
非常感谢您的时间和精力
【问题讨论】:
-
我认为可以做到,但 C# 可能是该工作的错误工具。了解Procmon 如何监控文件系统和注册表事件并准确了解涉及的进程。但我认为这样做是通过放置许多低级钩子来实现的
-
谢谢,我检查一下,也许我可以从 c# 调用它并创建一个我可以在代码中处理的输出。
-
无法让它工作。
标签: c# file detection file-watcher