我正在编写一个需要提升权限的命令行工具。这可以使用清单成功实现。
但如果从 cmd.exe 或 Far Manager (far.exe) 启动此工具,则会创建一个新的控制台窗口。因此,所有工具控制台输出都会写入其中,并在关闭时丢失。
所以我的想法是实现一个分叉,其中代码的第一部分使用一些参数调用相同的可执行文件并Process.ProcessStartInfo
获得额外的收益UseShellExecute = true
,Verb = "runas"
; 另一部分,称为参数,正在执行提升特权所需的操作。
是否可以通过从第二个实例获取输出并将其重定向到第一个实例来“虚拟化”我的工具重新启动?