【问题标题】:How to make a hidden windows form show as a background process如何使隐藏的窗口窗体显示为后台进程
【发布时间】:2018-02-09 01:21:20
【问题描述】:

我想运行一个显示在任务管理器“进程”选项卡的“后台进程”部分(不是“应用程序”部分)的应用程序)。

此应用程序正在等待外部事件发生,当它发生时将显示一个窗口窗体。

我不介意此表单在显示时是否显示在“应用程序”部分。但是,我希望它仅在“后台进程”部分中看到它尚未显示/隐藏/不可见/ShowInTaskbar = false/尚未加载/尚未实例化/不显示将工作的表单的任何方式。

一个似乎可以做到这一点的示例程序是 Skype。当 Skype 窗口打开时,它会在“应用程序”部分中看到,但是当您关闭窗口并且它不再显示在任务栏中(仅作为系统托盘图标显示)时,它将显示在“后台进程”中部分。

注意:我已经看到很多类似问题的答案都说只是 .Hide() 表单,但这愚蠢地将其完全隐藏在任务管理器进程中。你为什么要这么做,除非你在制造病毒!

【问题讨论】:

  • 尝试关闭表单。
  • 不,隐藏 GUI 无法从进程选项卡中隐藏它。试试看。
  • @Hans Passant,你是对的。仅在从 Visual Studio 运行应用程序时才会出现此问题。后台进程实际上列在 Visual Studio App 进程下。我必须扩展 Visual Studio 流程才能看到它。

标签: c# .net winforms process background-process


【解决方案1】:

不显示任何类型的 GUI。进程自动成为没有 GUI 的后台进程。

即不加载任何窗口/表单

或者...只需创建一个 Windows 服务(取决于您所需的架构)。

【讨论】:

    【解决方案2】:

    抱歉,我发现只有在 Visual Studio 中调试应用程序时才会出现此问题。后台进程实际上列在 Visual Studio App 进程下,而不是单独的进程。我必须展开“Microsoft Visual Studio 2017”进程才能看到它。

    虽然直接运行 .exe 文件时这不是问题,但该进程应显示在“后台进程”下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-03
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多