如果我有一个运行我的 EXE 的 Windows 计划任务。有没有办法从我的 EXE 中找到触发我的计划任务实例?
问问题
5557 次
2 回答
3
简单的答案是:不。
您可以做的最好的事情是以编程方式访问任务调度程序库并查看您所在的进程是否处于“运行”模式,获取进程的 PID(调度程序实际上将其写入其历史记录)并将其与您的进行比较。
更简单的做法是访问系统事件日志并查看是否有提及执行您的 exe 文件(尽管如果实际执行了 exe,它们可能不是这样的日志)。
唯一可以与进程关联的是调用者(可能是 NETWORK SERVICE 或一些预定义的帐户),它不提供有关它被调度的任何信息。
于 2012-04-18T18:30:36.380 回答
0
我尝试了一段时间来解决同样的问题,但是我认为使用当前的 API 是不可能的。如果您有对正在运行的任务的引用,您可以获得启动它的任务引擎的 PID。从那里,您可以转到任务事件日志并查找具有相同引擎 PID 的 ID 为 200(操作已启动)的最新事件,但是由于您可以在单个任务引擎下运行多个任务进程,因此您不能绝对确定地走得更远(例如,您的进程的第二个实例可能在相同的引擎 PID 下运行——您将无法分辨哪个关联 ID 属于您的目标进程。)
于 2012-06-15T21:02:43.367 回答