【问题标题】:Create a background process in windows在windows中创建后台进程
【发布时间】:2010-12-27 03:14:29
【问题描述】:

如何以编程方式让进程进入后台?

我想要的是用户双击进程可执行文件,它只是进入后台......并且在执行时不打开窗口。

Visual C++ 中的任何代码 sn-p 都会很有帮助

【问题讨论】:

  • 为了回答这个问题,了解您使用的是什么框架很重要:MFC、.NET,还是只是本机 Win32 API?

标签: windows visual-c++ process background-process


【解决方案1】:

您是否考虑过创建一个Windows Service?它们专门设计为在后台运行而不显示 UI。

否则,只需create an application without a window

【讨论】:

    【解决方案2】:

    这可能会有所帮助:http://ss64.com/nt/start.html

    【讨论】:

    • 如果这是 superuser.com,则此答案将适用
    • 这不是“以编程方式”。
    • 他当然可以“以编程方式”创建 Windows 服务,或者以其他方式安排将进程置于后台。另一方面,他也可以“以编程方式”简单地安排使用 START 命令。您可以“以编程方式”定义您认为合适的方式,但有时,最简单的解决方案(使用现有的命令基础架构)适合,无论您选择如何“以编程方式”解析。
    【解决方案3】:

    我知道这是旧的,但我想当人们通过搜索找到它时我会发布一些东西。

    虽然我喜欢 Cody Gray 对设计正确性的回答,但有时你别无选择。

    如果您想启动程序而不跳转到新窗口(它显示在后台或最小化)或根本不创建窗口,请尝试查看ShellExecuteShellExecuteEx 函数。参数nShowCmd(或nShow)为您(以及其他)提供了选项:

    SW_HIDE

    隐藏窗口并激活另一个窗口。

    SW_SHOWMINNOACTIVE

    将窗口显示为最小化窗口。活动窗口保持活动状态。

    如文档所述,SW_HIDE 会创建一个运行您提供给它的可执行文件的进程,但如果该程序通常会创建一个窗口,则不会出现。

    【讨论】:

      【解决方案4】:

      我试过这种方法,效果很好: 创建一个控制台应用程序并在 sub main 中编写您的代码,就像任何其他控制台应用程序一样。 现在将项目属性中的应用程序类型从 Console 应用程序更改为 windows Forms 应用程序 就是这样

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-24
        • 1970-01-01
        • 1970-01-01
        • 2015-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多