暂停执行远程进程(C,Windows)

时间:2009-08-07 13:04:50

标签: c windows winapi process suspend

我可以使用SuspendThread()暂停另一个进程的线程。有没有办法完全暂停执行该流程? 如果是,请发布代码。

感谢。

PS: 既然你会问“你为什么要这样做”我会在这里发布。 我正在处理不再维护的遗留软件。我无权访问源代码。现在我需要它暂停,直到文件充满数据然后恢复执行。

3 个答案:

答案 0 :(得分:2)

唯一的方法是暂停该进程的所有线程。

如果您想查看实际代码,请查看示例here

答案 1 :(得分:0)

>唯一的方法是暂停该进程的所有线程。

没有。
使用未记录的内核api(从NT 3.1导出)来暂停Pid。

答案 2 :(得分:0)

如果进程快速或异步地拥有或生成许多线程,则使用SuspendThread()来处理竞争条件。

实现同一事物(即流程范围)的一种方法是使用DebugActiveProcess()作为调试器附加到目标流程,然后只需调用DebugBreakProcess。当进程处于断点时,将不会创建新线程并且所有执行进程范围都将停止。