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