如何 show/hide 控制台 window 应用程序?

How to show/hide a console window app?

我有一个小型控制台应用程序。我想在从我的主程序调用它时隐藏它的 window(使用 -hide 作为命令行参数)并在用户启动它时显示它(没有命令行参数)。

This question 建议使用 {$APPTYPE GUI} 而不是 {$APPTYPE CONSOLE} 将隐藏 window。确实有效。但是,当用户 运行 时,如何使 window 可见?

目的:我希望我的主程序在后台静默地与控制台应用程序交互(控制台是不可见的)。所以,当用户单独启动控制台应用程序时,我只想给他一个警告:'This console app is doing x task. You cannot start it manually'。

  1. 不要管程序,作为控制台应用程序。不要将它做成 GUI 应用程序,因为这意味着当用户直接启动它时,它不会得到一个控制台。
  2. 当您从主应用程序启动程序时,使用 CreateProcess 执行此操作,并传递 CREATE_NO_WINDOW 标志。该标志确保不会创建控制台 window。