如果我有一个windows计划任务运行我的EXE。有没有办法从我的EXE中找到触发我的计划任务实例?
发布于 2012-04-19 02:30:36
简单的答案是:不。
你可以做的最好的事情就是以编程的方式访问任务调度器库,查看你所在的进程是否处于“运行”模式,获取进程的PID (调度器实际上将其写入其历史记录),并将其与您的进程进行比较。
更容易做的事情是访问系统事件日志,并查看是否有任何提及执行您的exe文件(尽管它们可能不是这样的日志,如果exe实际是执行的)。
您唯一可以与您的进程关联的是调用者(可能是网络服务或某个预定义的帐户),它不会提供有关正在调度的调用者的任何信息。
发布于 2012-06-16 05:02:43
我尝试了一段时间来解决同样的问题,但是我认为使用当前的API是不可能的。如果您有对正在运行的任务的引用,则可以获取启动它的任务引擎的PID。从那里,您可以转到任务事件日志并查找ID为200 (操作已启动)的具有相同引擎PID的最新事件,但是,由于您可以在单个任务引擎下运行多个任务进程,因此您不能绝对确定地进入下一步(例如,您的进程的第二个实例可能在相同的引擎PID下运行--您将无法分辨哪个关联ID属于您的目标进程)。
https://stackoverflow.com/questions/10215238
复制相似问题