gpt4 book ai didi

c# - 在 C# 应用程序中隐藏命令窗口

转载 作者:可可西里 更新时间:2023-11-01 07:45:46 25 4
gpt4 key购买 nike

在你说这是一个重复的问题之前,请让我解释一下(因为我已经阅读了所有类似的主题)。

我的应用程序有这两个设置:

  procStartInfo.CreateNoWindow = true;
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;

并且还具有 WindowsApplication 作为输出类型。

当我调用命令行命令时,黑色窗口仍然出现。还有什么我可以做的来隐藏窗口吗?并非所有命令都会发生这种情况,XCOPY 是黑色窗口确实闪烁的情况。只有当我正在 XCOPYing 的目标已经包含该文件并且它提示我是否要替换它时才会发生这种情况。即使我传入/Y 它仍然会短暂闪烁。

如果有帮助,我愿意使用 vbscript,但还有其他想法吗?

客户端将调用我的可执行文件,然后传入命令行命令即:

C:\MyProgram.exe 启动 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;
}
}

最佳答案

问题是您正在使用 cmd.exe。只有它的控制台窗口会被隐藏,而不是您要求它启动的进程的控制台窗口。使用 cmd.exe 没有什么意义,除非您试图执行它自己实现的一些命令。喜欢复制。

如果需要 cmd.exe,您仍然可以禁止显示窗口,您必须使用/B 选项启动。输入开始/?在命令提示符下查看选项。但这并没有帮助,您不能使用 START COPY。

xcopy.exe 中有一个特定的怪癖可能也会让您失望。如果您不重定向输入,它不会执行。它只是在没有诊断的情况下无法运行。

关于c# - 在 C# 应用程序中隐藏命令窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3440105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com