Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有任何编程语言提供跟踪执行文件的功能?_C#_Exe_File Watcher - Fatal编程技术网

C# 是否有任何编程语言提供跟踪执行文件的功能?

C# 是否有任何编程语言提供跟踪执行文件的功能?,c#,exe,file-watcher,C#,Exe,File Watcher,C语言中的FileSystemWatcher可以跟踪文件的编辑、创建或删除情况。 不知何故,我还想跟踪一个executionfile-.exe-,以获得它的执行时间和参数,这些参数在执行时被传输 在C或任何编程语言中是否有支持此功能的类?尽管windows中已经有内置功能,如果您正在使用的是内置功能的话。Windows有自己的带有事件查看器的审核系统 如果您想专门使用C制作一个定制的审计软件,这里有一个指向框架的链接,可以帮助您: 它以所需的格式生成审核日志 提供了输出扩展来记录JSON文件、事

C语言中的FileSystemWatcher可以跟踪文件的编辑、创建或删除情况。 不知何故,我还想跟踪一个executionfile-.exe-,以获得它的执行时间和参数,这些参数在执行时被传输


在C或任何编程语言中是否有支持此功能的类?

尽管windows中已经有内置功能,如果您正在使用的是内置功能的话。Windows有自己的带有事件查看器的审核系统

如果您想专门使用C制作一个定制的审计软件,这里有一个指向框架的链接,可以帮助您:

它以所需的格式生成审核日志

提供了输出扩展来记录JSON文件、事件日志、SQL、MySQL、PostgreSQL、MongoDB、AzureBlob、DocumentDB、Redis、Elasticsearch、DynamoDB、UDP数据报等

这些是从框架的自述文件中获取的一些可用输出。

如果它对您有帮助,您随时可以。然后您可以使用读取它们的可执行文件

像这样的事情应该与您描述的基本相同:

static void Main(string[] args)
{

    foreach (var process in Process.GetProcesses())
    {
        Console.WriteLine($"Process: {GetMainModuleFilepath(process.Id)}");
    }

    Console.ReadKey();
}

private static string GetMainModuleFilepath(int processId)
{
    string wmiQueryString = "SELECT ProcessId, ExecutablePath FROM Win32_Process WHERE ProcessId = " + processId;
    using (var searcher = new ManagementObjectSearcher(wmiQueryString))
    {
        using (var results = searcher.Get())
        {
            ManagementObject mo = results.Cast<ManagementObject>().FirstOrDefault();
            if (mo != null)
            {
                return (string)mo["ExecutablePath"];
            }
        }
    }
    return null;
}

嗨,你可以用日志记录来完成它!。什么意思?即使我没有执行代码的权限?谢谢!我试试看: