如何在没有 P/Invoke 的情况下从 c# 创建挂起的进程?
Posted
技术标签:
【中文标题】如何在没有 P/Invoke 的情况下从 c# 创建挂起的进程?【英文标题】:How to create suspended process from c# without P/Invoke? 【发布时间】:2014-03-21 22:25:38 【问题描述】:WinAPI CreateProcess 具有 CREATE_SUSPENDED 标志,因此可以在 JobObject 完成某些操作之前将其附加到 JobObject,然后为其主线程调用 ResumeThread。我发现寻找解决方案的唯一方法是 11 年前写的 this post!
【问题讨论】:
【参考方案1】:这样做的唯一方法是使用CreateProcess
。 .net Process
类不提供该功能。 p/invoke CreateProcess
或使用混合模式 C++/CLI 程序集来调用它。
【讨论】:
C++/CLI 是否与 WinAPI 有更多的互操作性?可能值得在 C++ 中创建一个“代理”程序集以便从 C# 中使用。 混合模式 C++/CLI 程序集可以包含 windows 头文件,并直接链接到非托管库。使用 C++/CLI 可以更轻松地使用 pinvoke 完成所有操作。以上是关于如何在没有 P/Invoke 的情况下从 c# 创建挂起的进程?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 p/invoke 终止从 C# 调用的 C++ 函数