Delphi 如何显示/隐藏控制台窗口应用程序?

Delphi 如何显示/隐藏控制台窗口应用程序?,delphi,console,console-application,delphi-xe7,Delphi,Console,Console Application,Delphi Xe7,我有一个小的控制台应用程序。我想在从我的主程序调用它时隐藏它的窗口(使用-hide作为命令行参数),并在用户启动它时显示它(没有命令行参数) 建议使用{$APPTYPE GUI}而不是{$APPTYPE CONSOLE}将隐藏窗口。事实上,它是有效的。但是,当由用户运行时,如何使窗口可见 目的:我希望我的主程序在后台与控制台应用程序进行无声交互(控制台不可见)。所以,当用户单独启动控制台应用程序时,我只想给他一个警告:“这个控制台应用程序正在执行x任务。您不能手动启动它' 将程序作为控制台应用程

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

建议使用{$APPTYPE GUI}而不是{$APPTYPE CONSOLE}将隐藏窗口。事实上,它是有效的。但是,当由用户运行时,如何使窗口可见

目的:我希望我的主程序在后台与控制台应用程序进行无声交互(控制台不可见)。所以,当用户单独启动控制台应用程序时,我只想给他一个警告:“这个控制台应用程序正在执行x任务。您不能手动启动它'

  • 将程序作为控制台应用程序单独使用。不要让它成为GUI应用程序,因为这意味着当用户直接启动它时,它将不会得到控制台
  • 当您从主应用程序启动程序时,使用
    CreateProcess
    执行此操作,并传递
    CREATE\u NO\u窗口
    标志。该标志确保不会创建任何控制台窗口

  • 好吧,这不可能在控制台窗口已经打开后更改其可见性。至少没有一些黑客。请记住,控制台窗口可以由多个不同的应用程序使用,用户甚至可以打开命令提示符,然后从那里打开此应用程序。@jerrydoge-当然可以。这是一扇窗户。看链接。就像我说的,至少不是没有一些黑客:-)看起来真的很可疑。如果我从命令提示符手动打开您的应用程序呢?它将使用已经打开的控制台窗口,在这种情况下,该窗口不属于此应用程序。