阻止窗口从任务管理器WPF中显示为“任务”c#

时间:2011-09-24 13:10:40

标签: c# wpf

我有一个打开多个窗口的程序。我使用this method将它们隐藏在ALT + TAB中。现在我需要新窗口停止显示在任务管理器的“任务”选项卡中。

我不需要在任务管理器中显示该进程,我只是不希望我的程序打开的所有窗口都显示在“任务”选项卡中。

这是我想要摆脱的图片:http://i1096.photobucket.com/albums/g324/thezaza101/Tasklist.jpg

-Thanks

4 个答案:

答案 0 :(得分:7)

感谢David Heffernan。

在我的主窗口中,我添加了一个静态窗口字段,该字段引用了我的主窗口。

public static Window main;
Public MainWindow()
{
main = this;
}

在Windows上我需要隐藏任务管理器和ALT + TAB,我将主窗口作为其所有者:

public HiddenWindow()
{
this.Owner = MainWindow.main;
}  

它非常简单,它隐藏了任务管理器上“任务”选项卡的窗口,也阻止了人们从ALT + TABing进入你的程序。

答案 1 :(得分:3)

对于WPF,我目前唯一知道的方法是将您的窗口标题设置为string.Empty或将WindowStyle设置为ToolWindow。将ShowInTaskBar设置为false不会将您的窗口隐藏在应用程序列表中。

答案 2 :(得分:0)

我遇到同样的问题(可能有些不同),这是我的代码:

subWindow.hide();//this will hide the subWindow
subWindow.show();//if want to show again

使用hide()

后,您将看不到任务窗口或AlT + TAB

答案 3 :(得分:0)

另一种方法是使用WindowInteropHelper。

    public MainWindow()
    {
        InitializeComponent();

        SourceInitialized += (s, e) =>
        {
            var win = new WindowInteropHelper(this);
            win.Owner = GetDesktopWindow();
        };
    }

    [DllImport("user32.dll", SetLastError = false)]
    static extern IntPtr GetDesktopWindow();