通过在资源管理器中双击控制台应用程序来启动控制台应用程序时,控制台可见。但是,如果您通过已经不可见的应用程序运行控制台应用程序,则控制台是不可见的(可能是因为它正在尝试读取标准输出或其他内容)。
那么,即使控制台应用程序是由后台应用程序启动的,如何向用户显示我的控制台窗口呢?
我已经尝试过ShowWindow
和SetForeground
Windows API而没有任何运气。我也尝试了以下内容。
//paths for starting the server.
var processInformation = new ProcessStartInfo(myOwnPath);
processInformation.WorkingDirectory = myOwnWorkingDirectory;
processInformation.UseShellExecute = false;
processInformation.WindowStyle = ProcessWindowStyle.Normal;
processInformation.CreateNoWindow = false;
processInformation.RedirectStandardInput = false;
processInformation.RedirectStandardError = false;
processInformation.RedirectStandardOutput = false;
Process.Start(processInformation);
有什么想法吗?
注意:如果应用程序需要启动自身并关闭旧实例以使控制台窗口可见,那就完全没了问题。
答案 0 :(得分:0)
尝试将UseShellExecute
设为true。将其设置为false可让您重定向输入,输出和错误流。