Я пишу инструмент командной строки, который требует повышения привилегий. Это может быть успешно реализовано с использованием манифеста.
Но если этот инструмент запускается из cmd.exe или Far Manager (far.exe), создается новое окно консоли. Таким образом, все выходные данные консоли инструмента записываются в него и теряются при закрытии.
Так что моя идея заключается в реализации форка, где первая часть кода вызывает один и тот же исполняемый файл с некоторым аргументом и Process.ProcessStartInfo
в дополнительном усилении UseShellExecute = true
, Verb = "runas"
; а другая часть, вызываемая с аргументом, делает то, что требует повышения привилегий.
Можно ли «виртуализировать» мой инструмент заново, захватив выходные данные из второго экземпляра и перенаправив его на первый?