【问题标题】:c# remove 3rd party application from taskbarc# 从任务栏中删除 3rd 方应用程序
【发布时间】:2012-05-17 21:31:46
【问题描述】:

如何通过句柄从 Windows 任务栏中删除 3rd 方应用程序?

我发现了这个: Remove application from taskbar with C# wrapper?

但这对我不起作用。 它只为我选择的窗口(记事本)设置另一种样式(小 x 关闭,没有最大化/最小化按钮)。

对此有什么想法吗?

编辑:我不想从任务栏中删除我的应用程序,我想通过句柄删除外部应用程序

【问题讨论】:

标签: c# windows winapi hide taskbar


【解决方案1】:

如果您有窗口句柄,您可以通过 Win32 API 调用ShowWindow()。然后你可以这样做:

// Let the window disappear (even from taskbar)
ShowWindow(this.Handle, WindowShowStyle.Hide);

// Revive the window back to the user
ShowWindow(this.Handle, WindowShowStyle.ShowNoActivate);

所以从现在开始,你所有的问题就是获取你想隐藏的窗口的句柄:

Process[] procs = Process.GetProcesses();
IntPtr hWnd;
foreach(Process proc in procs)
{
   if ((hWnd = proc.MainWindowHandle) != IntPtr.Zero)
   {
      Console.WriteLine("{0} : {1}", proc.ProcessName, hWnd);
   }
}

【讨论】:

  • 这对我不起作用。隐藏窗口后它们是不可见的,设置 showoactivate 后它们再次可见但也显示在任务栏中。
  • @user1216595:好吧,我误会了你。您想查看该窗口,但它不应出现在任务栏中。我以为您想隐藏窗口(例如最小化)并将其从任务栏中删除。
  • @user1216595:在那种情况下this question has already been answered
  • 这不是恢复:IntPtr hWnd = p[0].MainWindowHandle; ShowWindow(hWnd, WindowShowStyle.ShowNoActivate);
【解决方案2】:

如何从 Windows 任务栏中删除应用程序?

this.ShowInTaskbar = false;

【讨论】:

    【解决方案3】:

    简单:

    this.ShowInTaskbar = false;
    

    至于Form运动:可以使用Layout events

    下的Move事件

    【讨论】:

      【解决方案4】:

      要将其从 Windows 任务栏中隐藏,您只需将 ShowInTaskbar 属性设置为 false :

      this.ShowInTaskbar = false;
      

      至于窗口的移动,您可以使用spy++ 来检查窗口事件并识别它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-10
        • 1970-01-01
        • 2011-10-01
        • 1970-01-01
        • 2018-03-24
        • 2012-01-04
        • 1970-01-01
        相关资源
        最近更新 更多