2010-04-05 33 views

回答

5

系统托盘中的图标称为“通知图标”。

要对您自己的应用程序执行此操作,如果您使用WinForms,则可以使用NotifyIcon类在系统托盘中显示图标。然后,您必须将其设置为不显示在任务栏中。

如果您使用WPF没有替代品,您仍然必须使用旧的WinForms NotifyIcon类,请查看此MSDN sample了解更多信息。


如果你想隐藏另一个应用程序,你需要做的就是使用API​​调用来更改应用程序窗口的状态。

您可以使用FindWindow获取要隐藏的窗口的句柄,然后您可以使用GetWindowLong获取windows状态。然后,您需要从状态中删除WS_EX_APPWINDOW标志,并使用SetWindowLong方法应用新样式,这会将其从任务栏中删除。然后,您可以使用Get/SetWindowState方法来找出窗口的状态并隐藏/最小化它。

您仍然只需要使用NotifyIcon类在系统托盘中显示您自己的图标。

祝你好运,所有这一切。这不是我亲自尝试过的,但是我用其他方式使用了所有这些方法调用。如果您还没有从C#中完成API,那么您可能需要做一些Google搜索来找出版本API方法的DllImport。尽管如此,不应该太难。


Crazyd22已经发现,使用一套略有不同的API方法,但实现了几乎相同的效果codeproject article。 (见下面的评论。)

+0

是的,我知道这一点,我的意思是不同的应用程序,如iTunes – Crazyd22 2010-04-05 20:05:52

+0

哦,你想最小化其他程序到系统托盘。好的,要做到这一点,您仍然需要使用NotifyIcon在系统托盘中显示图标,但您需要找到一个API调用来隐藏程序任务栏窗口。等一下,我会看看我能找到什么。 – 2010-04-05 20:11:17

+0

我明白了,很好,谢谢^^ – Crazyd22 2010-04-05 20:17:09