我有另一个应用程序启动的控制台应用程序。这就是我正在玩的开始它:
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = @"C:\...\MyApp.exe";
processStartInfo.Arguments = "a, a, \\n, d, c";
processStartInfo.CreateNoWindow = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.UseShellExecute = false;
processStartInfo.ErrorDialog = false;
processStartInfo.RedirectStandardError = true;
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
Process process = Process.Start(processStartInfo);
这个控制台应用程序背后的想法是,在运行这些参数之后,用户唯一可见的是他们可以与之交互的 SysTray 图标。选项之一是显示控制台的能力。这是一个双重问题:
- 由于控制台应用程序是在后台启动的,我如何让它不再在后台?最初我使用一些 COM 和 P/Invoke 的 ShowWindow/HideWindow 方法,但这似乎有所不同。
- 运行此流程代码时,控制台应用程序会短暂闪烁,然后进入后台。如何抑制控制台的这种闪烁?这看起来一点都不专业。