是否有可能创建一个应用程序来检查windows上打开的每个文件?

本文关键字:windows 文件 检查 创建 有可能 应用程序 一个 是否 | 更新日期: 2023-09-27 18:17:38

我想建立一个应用程序(如果还没有)来记录每个Windows(7, 64位)打开的文件(包括属性)在c#上。

你觉得怎么样?这可能吗?是否已经有其他软件可以做到这一点?我需要使用低级语言(C?)和管理内核事件吗?

是否有可能创建一个应用程序来检查windows上打开的每个文件?

我的意思是,如果我打开这个c:/programs/file.exe/my-attributes我怎么能捕捉到/my-attributes

您真正要求的是用于启动进程的命令行。这与试图发现进程打开了哪些文件是完全不同的问题。你可以用c#,用System。管理在Win32_Process类上运行查询。启动一个新的控制台模式项目,并向System.Management添加一个引用。让代码看起来像这样:

using System;
using System.Management;  // NOTE: add a reference to System.Management!
class Program {
    static void Main(string[] args) {
        ManagementObjectSearcher searcher =
            new ManagementObjectSearcher("root''CIMV2",
            "SELECT * FROM Win32_Process");
        foreach (ManagementObject queryObj in searcher.Get()) {
            Console.WriteLine(queryObj["CommandLine"]);
        }
        Console.ReadLine();
    }
}

注意,输出不是很干净,需要解析。一些进程可能以其内部Windows路径(如'??'etc)出现,一些进程没有完整的路径名。查看Win32_Process类文档,看看还有哪些属性可用。