【问题标题】:How to show/hide a console window app?如何显示/隐藏控制台窗口应用程序?
【发布时间】:2017-08-03 16:08:26
【问题描述】:

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

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

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

【问题讨论】:

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

标签: delphi console console-application delphi-xe7


【解决方案1】:
  1. 将程序单独作为控制台应用程序。不要把它做成 GUI 应用程序,因为这意味着当用户直接启动它时,它不会得到控制台。
  2. 当您从主应用程序启动程序时,使用CreateProcess 执行此操作,并传递CREATE_NO_WINDOW 标志。该标志确保不会创建控制台窗口。

【讨论】:

    猜你喜欢
    • 2011-04-04
    • 2016-03-30
    • 2011-04-20
    • 2012-08-02
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    相关资源
    最近更新 更多