C# 如何找到启动流程的计划任务的instanceid/correlation ID
如果我有运行EXE的windows计划任务。有没有办法从我的EXE中找到触发我的计划任务实例?简单的答案是:没有 您可以做的最好的事情是以编程方式访问任务调度器库,查看您正在运行的进程是否处于“运行”模式,获取进程的PID(调度器实际将其写入历史记录),并将其与您的进行比较 更简单的方法是访问系统事件日志,并查看是否有任何关于执行exe文件的内容(尽管如果exe文件实际执行,它们可能不是这样的日志)C# 如何找到启动流程的计划任务的instanceid/correlation ID,c#,scheduled-tasks,C#,Scheduled Tasks,如果我有运行EXE的windows计划任务。有没有办法从我的EXE中找到触发我的计划任务实例?简单的答案是:没有 您可以做的最好的事情是以编程方式访问任务调度器库,查看您正在运行的进程是否处于“运行”模式,获取进程的PID(调度器实际将其写入历史记录),并将其与您的进行比较 更简单的方法是访问系统事件日志,并查看是否有任何关于执行exe文件的内容(尽管如果exe文件实际执行,它们可能不是这样的日志) 您唯一可以与流程关联的是调用方(可能是网络服务或某些预定义的帐户),它不提供任何与正在计划的流程
您唯一可以与流程关联的是调用方(可能是网络服务或某些预定义的帐户),它不提供任何与正在计划的流程相关的信息 我尝试了一段时间来解决这个问题,但是我认为使用当前的API是不可能的。如果有对正在运行的任务的引用,则可以获取启动它的任务引擎的PID。从那里,您可以转到任务事件日志并查找ID为200(Action Started)且具有相同引擎PID的最新事件,但是,由于您可以在单个任务引擎下运行多个任务进程,因此您无法绝对确定地再进一步(例如,流程的第二个实例可能在同一个引擎PID下运行——您无法分辨哪个关联ID属于目标流程。)