Из-за радостей UAC мне нужно программно открыть командную строку с повышенными правами, а затем перенаправить стандартный ввод, чтобы я мог использовать команду time
.
Я могу открыть ссылку (.lnkфайл), если я использую
Process ecp = System.Diagnostics.Process.Start("c:/ecp.lnk");
, однако, если я использую этот метод, я не могу перенаправить standardIn.
Если я использую метод StartProcessInformation (который прекрасно работает, если вы вызываетеexe)
ProcessStartInfo processStartInfo = new ProcessStartInfo("c:/ecp.lnk");
processStartInfo.UseShellExecute = false;
processStartInfo.ErrorDialog = false;
processStartInfo.RedirectStandardError = true;
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
Process process = new Process();
process.StartInfo = processStartInfo;
bool processStarted = process.Start();
StreamWriter inp = process.StandardInput;
StreamReader oup = process.StandardOutput;
StreamReader errorReader = process.StandardError;
process.WaitForExit();
Я получаю сообщение об ошибке: Указанный исполняемый файл не является допустимым приложением Win32.
Может кто-нибудь помочь мне создать командную строку с повышенными привилегиями, в которую я могу записать стандартный вводиз?Или если кто-нибудь знает, как программно расширить командную строку?