WinAPI CreateProcess имеет флаг CREATE_SUSPENDED, поэтому можно присоединить процесс к JobObject до того, как он что-то сделает, а затем вызвать ResumeThread для его основного потока. Единственное, что я нашел в поисках решения, это это пост написан 11 лет назад!
Как создать приостановленный процесс из С# без P/Invoke?
Ответы (1)
Единственный способ сделать это с помощью CreateProcess
. Класс .net Process
не предлагает эту функциональность. Либо p/invoke CreateProcess
, либо используйте сборку C++/CLI смешанного режима, чтобы вызвать то же самое.
person
David Heffernan
schedule
21.03.2014
Обладает ли C++/CLI большей совместимостью с WinAPI? Возможно, стоит создать прокси-сборку на C++ для использования из C#.
- person SerG; 22.03.2014
Сборка C++/CLI смешанного режима может включать заголовки Windows и напрямую ссылаться на неуправляемые библиотеки. Все можно сделать с помощью pinvoke, но проще с C++/CLI.
- person David Heffernan; 22.03.2014