【问题标题】:How to make a simple Hello World "invisible" in Windows (C/C++)如何在 Windows (C/C++) 中使简单的 Hello World “不可见”
【发布时间】:2012-03-18 07:28:12
【问题描述】:

你好,我想知道是否可以在 Windows 中制作一个简单的 Hello World 程序(然后进入实际程序)不可见。我的意思是,当我执行程序时,不会有任何图形指示。没有 cmd 打印“Hello world”,没有任务栏标签,没有系统托盘图标,什么都没有。我希望程序安静地执行而不打扰我。

那么我在想什么呢?那可行吗?会不会像服务一样?我不知道。

顺便说一句,我想用 C/C++ 编写代码。

【问题讨论】:

  • 只需制作一个没有控制台或任何窗口的 Windows 应用程序 (WinMain)。
  • 您想用 C 还是 C++ 编写代码?例如,在 C 中编码时,不能使用 std::string 类。
  • 我真的不介意,但考虑到下面的答案,它可能会在 C++ 中完成

标签: c++ c background invisible silent


【解决方案1】:

如果它是一个必须由用户启动才能执行某些任务的应用程序,或者无论如何,它是一些绑定到当前用户会话的不可见应用程序,则只需创建一个 GUI 应用程序而不创建任何窗口。

如果这样的应用程序不管登录/注销如何都应该留在后台,你应该编写一个 Windows 服务 - 但请注意,它需要相当多的 Windows 编程经验才能在服务中正确处理所有内容;如果您不知道什么是 Windows 服务,您可能应该坚持第一个解决方案。

【讨论】:

  • 嗯,我明白了。我肯定会开始使用无 GUI 解决方案,因为我确实对 Windows 编程毫无经验。但是,编写服务代码有那么难吗?有什么先决条件?我应该成为 Windows API 的神还是有一条最简单的路径。爱你们
  • 没有必要成为 Win32 的神,但肯定不是最简单的事情之一,因为您需要对许多 Win32 概念/习语有很好的理解。您可以查看 MSDN 上的 Services 部分,以了解所涉及的内容类型。
【解决方案2】:

您如何处理这取决于您拥有的 Windows 应用程序的类型。

如果您希望程序在启动时运行并在关闭时停止,那么请继续编写 Windows 服务,这是可行的,但不像编写常规用户模式应用程序那么简单。调试服务介于常规应用程序和设备驱动程序之间,更像是应用程序,但您必须使用 Microsoft 模板挂钩才能获得调试控制权。

如果您只是想要一个静默控制台并且它是一个 Windows 应用程序(主窗口等),您可以创建一个窗口,使其最初不显示。

如果是控制台应用程序,您应该能够重定向控制台的输出。有 Win32 库例程来操作控制台,包括关闭窗口,因此应用程序可以“静默”运行。这是这些函数的链接。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073%28v=vs.85%29.aspx

【讨论】:

    【解决方案3】:

    是的,你可以把它变成一个服务,并且不会显示控制台。有关如何实现这一点的更多信息,请查看this MSDN page

    【讨论】:

    • 感谢您的快速回复,我将构建一个没有 GUI 的应用程序,然后使用你们提供的信息检查服务内容
    猜你喜欢
    • 1970-01-01
    • 2017-08-04
    • 2021-09-24
    • 1970-01-01
    • 2011-01-11
    • 2017-02-01
    • 2014-08-16
    • 1970-01-01
    • 2020-03-18
    相关资源
    最近更新 更多