【发布时间】:2015-09-02 07:05:20
【问题描述】:
构建将执行 exe 文件 (pagesnap.exe) 的控制台应用程序。我想在执行期间隐藏它的窗口(pagesnap.exe)。它是如何完成的。
ProcessStartInfo Psi = new ProcessStartInfo("D:\\PsTools\\");
Psi.FileName = "D:\\PsTools\\psexec.exe";
Psi.Arguments = @"/C \\DESK123 D:\files\pagesnap.exe";
Psi.UseShellExecute = false;
Psi.RedirectStandardOutput = true;
Psi.RedirectStandardInput = true;
Psi.WindowStyle = ProcessWindowStyle.Hidden;
Psi.CreateNoWindow = true;
Process.Start(Psi).WaitForExit();
DESK123 是本地 PC。稍后将在远程 PC 上尝试此操作。
我尝试过的事情
Psi.Arguments = @"/C start /b psexec \\DESK123 D:\files\pagesnap.exe";
Psi.Arguments = @"/b psexec \\DESK123 D:\files\pagesnap.exe";
Psi.Arguments = @"/C psexec \\DESK123 /b D:\files\pagesnap.exe";
Psi.Arguments = @"/C psexec \\DESK123 D:\files\pagesnap.exe 2>&1 output.log";
更新:我已经将输出类型的页面快照构建为 Windows 应用程序而不是控制台。现在 cmd 窗口没有出现。看来这是我唯一的方法了
【问题讨论】:
-
@AmittaiShapira 我确实经历过,但不知道在哪里使用
/b。我试过@"/b psexec和".. /b D:\files\pagesnap.exe"。都没有用。 -
什么你想做什么?如果你真的想执行
psexec,就没有理由执行cmd。检查this duplicate answer -
@PanagiotisKanavos。我已经更新了我的问题。仅当 PageSnap 构建为 windows 应用程序而不是控制台应用程序时,cmd 窗口才会显示。
-
@Qwery 我认为您混淆了在何处执行什么以及显示什么。 ProcessInfo 控制您如何运行
psexec,而不是pagesnap. To control howpagesnap` 看来您应该将适当的参数传递给psexec,例如-d用于非交互式
标签: c# .net command-prompt psexec