在你说这是一个重复问题之前,请允许我解释一下(因为我已经阅读了所有类似的帖子)。
我的应用程序具有以下两个设置:
procStartInfo.CreateNoWindow = true;
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
并且输出类型也是 WindowsApplication。当我调用命令行命令时,黑色窗口仍然会弹出。除了隐藏窗口之外,我还能做些什么吗?并非所有命令都会出现这种情况,XCOPY 是一个会出现黑色窗口的情况。这只会发生在我复制到的目标已经包含该文件并且正在提示我是否要替换它的情况下。即使我传递了 /Y,它也会短暂地闪烁。如果可以的话,我愿意使用 vbscript,但还有其他想法吗?
客户端将调用我的可执行文件,然后传入命令行命令,例如:
C:\MyProgram.exe start XCOPY c:\Test.txt c:\ProgramFiles\
这是应用程序的完整代码:
class Program
{
static void Main(string[] args)
{
string command = GetCommandLineArugments(args);
// /c tells cmd that we want it to execute the command that follows and then exit.
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
// Do not create the black window.
procStartInfo.CreateNoWindow = true;
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = procStartInfo;
process.Start();
}
private static string GetCommandLineArugments(string[] args)
{
string retVal = string.Empty;
foreach (string arg in args)
retVal += " " + arg;
return retVal;
}
}
Process
/ProcessStartInfo
代码的其余部分? - Tim Robinson