如何:标记流程

时间:2009-11-17 14:03:28

标签: windows winapi process

我正在使用CreateProcessAsUser()来制作流程。我想标记其中的一些,以便稍后,给定一个进程ID /句柄,我可以确定是否是我发起它们。

是否存在任何本地标记流程的技术。我希望我的解决方案是无状态的,因此PID表不适合 - 也不检查进程的父进程以查看是否已成功(进程被重新分配)。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的目标是Windows Vista或Windows Server 2008,则可以使用InitializeProcThreadAttributeList()并在调用CreateProcess()时通过STARTUPINFOEX结构将属性列表添加到流程中。但是,你必须在进程终止之前自己销毁属性列表,而且我理解的情况似乎不是这样......

如果进程有一个窗口,你也可以使用window properties,但是这里再次你必须在窗口被破坏时销毁属性列表,而你也不能控制它......

我担心你不得不求助于其他事情。你能解释为什么PID表不合适吗?我怀疑这是因为你的“启动器”可能会终止,并且必须在重新启动时再次找到它的进程。在这种情况下,您应该考虑在启动进程时将这些信息序列化到磁盘,并在重新启动时将其读回(加上一些额外的检查以验证序列化信息的有效性)。