C#如何将第三方应用程序从任务栏中移除

5
如何通过句柄从Windows任务栏中删除第三方应用程序?
我找到了这个: 使用C#包装器从任务栏中删除应用程序? 但它对我没有用。 它只为我选择的窗口(记事本)设置了另一种样式(小x关闭,无最大化/最小化按钮)。
你有什么想法吗?
编辑:我不想从任务栏中删除我的应用程序,我想通过句柄删除外部应用程序。

4个回答

4
要隐藏它不出现在Windows任务栏中,只需将ShowInTaskbar属性设置为false即可:
this.ShowInTaskbar = false;

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


4

如果您有窗口句柄,可以通过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);
   }
}

1
这对我没有起作用。在隐藏窗口后,它们是不可见的,设置 ShowNoActivate 后它们再次可见,但也会显示在任务栏中。 - cyptus
@user1216595:好的,我误解了你的意思。你想看到窗口,但它不应该出现在任务栏中。我以为你想隐藏窗口(像最小化)并将其从任务栏中删除。 - Oliver
1
@user1216595:在这种情况下,此问题已经得到解答 - Oliver
这不是还原操作: IntPtr hWnd = p[0].MainWindowHandle;ShowWindow(hWnd, WindowShowStyle.ShowNoActivate); - Furkan Gözükara

0
如何从Windows任务栏中删除应用程序?
this.ShowInTaskbar = false;

-3

简单:

this.ShowInTaskbar = false;

关于 Form 移动:您可以在 布局事件 下使用 Move 事件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接