【问题标题】:Hide a Form From Task Manager Application Tab in VB.NET在 VB.NET 的任务管理器应用程序选项卡中隐藏表单
【发布时间】:2023-04-04 15:57:01
【问题描述】:

我尝试使用三个表单制作应用程序,但我不希望其他两个表单显示在任务栏和任务管理器应用程序选项卡中。我将他们的 ShowInTaskbar 设置为 False 并且它有效。

但是当我打开我的任务管理器时,它们的三个名称都列在“应用程序”选项卡中。那么如何让它们不在任务管理器中显示呢?

我仍然希望它出现在进程选项卡中,而不是应用程序选项卡中。因为如果我有 3 个表单,在应用程序选项卡中将显示 Form1、Form2、Form3 名称。

【问题讨论】:

  • 为什么不想在任务管理器中显示它们?它们的目的是让用户可以看到正在运行的程序并可以关闭无响应的程序,查看正在使用内存的程序等。此外,您不要从那里隐藏表单,而是隐藏可执行文件。
  • @Zaggler :我认为他想隐藏窗口,使其不显示在“应用程序”选项卡中,但在“进程”下仍然可见。在 Windows 10 中,这些已合并到一个选项卡中,但在 Windows 7 及更早版本中,它们是两个不同的选项卡。
  • 认为这在 Win10 中发生了变化,以前 ShowInTaskbar=false 就足够了。您必须让任务管理器相信它是一个“帮助”窗口。这需要使用 Show(owner) 重载来显示它,因此它是一个拥有的窗口。或者将其 FormBorderStyle 属性设置为 SizeableToolWindow。
  • 我仍然希望它出现在进程选项卡中,而不是应用程序选项卡中。因为如果我有 3 个表单,在应用程序选项卡中将显示 Form1、Form2、Form3 名称。

标签: vb.net forms taskmanager


【解决方案1】:

将此代码添加到您的项目中

Protected Overrides ReadOnly Property CreateParams As CreateParams
    Get
        Dim cp = MyBase.CreateParams
        cp.ExStyle = cp.ExStyle Or &H80
        Return cp
    End Get
End Property

可以帮到你吗?

【讨论】:

    【解决方案2】:

    请尝试以下方法(假设您使用 Visual Studio):

    1. 打开解决方案/项目

    2. 打开程序/项目的属性

    3. 转到“应用程序选项卡”

    4. 将应用程序类型更改为 Windows 服务

    现在您的程序应该在任务管理器中显示为后台进程,而不是应用程序。

    【讨论】:

    • 没有那么简单。仍然必须创建服务及其OnStartOnStop 方法。 -- 此外,由于他使用多种形式,人们会假设他正在展示某种用户界面,而这不能通过服务以简单的方式完成。即使他确实显示了来自服务的表单,它们仍然会显示在任务管理器的Applications 选项卡中,除非最初的问题得到解决。
    • 他甚至明确要求隐藏三分之二表单,而不是整个应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多