C#以管理员身份运行CMD

时间:2016-01-15 19:57:06

标签: c# cmd

我尝试以管理员身份运行cmd命令。但CMD窗口意外关闭。如果CMD窗口停留,我可以看到错误。我尝试使用%// Get size params and R [n,d] = size(DataMatrix); [R,err] = cholcov(I,0); %// Calculate constants : "logSqrtDetSigma" and "d*log(2*pi)/2`" K1 = sum(log(diag(R))); K2 = d*log(2*pi)/2; %// Major thing happening here as we calclate "X0" for all iterations %// in one go with permute and bsxfun diffs = bsxfun(@minus,DataMatrix,permute(DataMatrix,[3 2 1])); %// "Sigma" is an identity matrix, so it plays no in "/R" at "xRinv = X0 / R". %// Perform elementwise squaring and summing rows to get vectorized "quadform" quadform1 = squeeze(sum(diffs.^2,2)) %// Finally use "quadform1" and get vectorized output as a 2D array p_out = exp(-0.5*quadform1 - K1 - K2)

我正在尝试以管理员身份运行代码process.WaitForExit();

这是我的代码。

zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk

有没有办法让CMD窗口保持运行/显示?

3 个答案:

答案 0 :(得分:1)

您正在从runas.exe可执行文件开始进程。这不是如何提升过程。

相反,你需要使用shell execute来启动你的excutable,但是使用runas动词。沿着这些方向:

ProcessStartInfo psi = new ProcessStartInfo(...); // your command here
psi.UseShellExecute = true;
psi.Verb = "runas";
Process.Start(psi);

答案 1 :(得分:0)

从您的流程中捕获输出:

proc.StartInfo = procStartInfo;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start()
// string output = proc.StandardOutput.ReadToEnd();
string error = proc.StandardError.ReadToEnd();
proc.WaitForExit();

然后对输出做一些事情。

注意:您不应该尝试同时同时读取两个流,因为存在死锁问题。您可以为其中一个或两个添加异步读取,或者只是来回切换,直到您完成故障排除。

答案 2 :(得分:0)

以下方法确实有效......

\n