Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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# 如何找到启动流程的计划任务的instanceid/correlation ID_C#_Scheduled Tasks - Fatal编程技术网

C# 如何找到启动流程的计划任务的instanceid/correlation ID

C# 如何找到启动流程的计划任务的instanceid/correlation ID,c#,scheduled-tasks,C#,Scheduled Tasks,如果我有运行EXE的windows计划任务。有没有办法从我的EXE中找到触发我的计划任务实例?简单的答案是:没有 您可以做的最好的事情是以编程方式访问任务调度器库,查看您正在运行的进程是否处于“运行”模式,获取进程的PID(调度器实际将其写入历史记录),并将其与您的进行比较 更简单的方法是访问系统事件日志,并查看是否有任何关于执行exe文件的内容(尽管如果exe文件实际执行,它们可能不是这样的日志) 您唯一可以与流程关联的是调用方(可能是网络服务或某些预定义的帐户),它不提供任何与正在计划的流程

如果我有运行EXE的windows计划任务。有没有办法从我的EXE中找到触发我的计划任务实例?

简单的答案是:没有

您可以做的最好的事情是以编程方式访问任务调度器库,查看您正在运行的进程是否处于“运行”模式,获取进程的PID(调度器实际将其写入历史记录),并将其与您的进行比较

更简单的方法是访问系统事件日志,并查看是否有任何关于执行exe文件的内容(尽管如果exe文件实际执行,它们可能不是这样的日志)


您唯一可以与流程关联的是调用方(可能是网络服务或某些预定义的帐户),它不提供任何与正在计划的流程相关的信息

我尝试了一段时间来解决这个问题,但是我认为使用当前的API是不可能的。如果有对正在运行的任务的引用,则可以获取启动它的任务引擎的PID。从那里,您可以转到任务事件日志并查找ID为200(Action Started)且具有相同引擎PID的最新事件,但是,由于您可以在单个任务引擎下运行多个任务进程,因此您无法绝对确定地再进一步(例如,流程的第二个实例可能在同一个引擎PID下运行——您无法分辨哪个关联ID属于目标流程。)