将应用程序的图标放入系统托盘

3
我正在使用Unity制作桌面吉祥物,但不希望在任务栏中看到图标,我想要将图标放在系统托盘中。有没有办法实现这个需求?

enter image description here

PS:这不是一个Windows表单(它是一个游戏),因此我认为Form.ShowInTaskbar将不起作用。


当你开始在微软文档中寻找有关如何做到这一点的信息时,请注意正式名称为“通知区域”(尽管某些微软文档确实使用了“托盘”一词,这让@RaymondChen感到非常沮丧)。https://blogs.msdn.microsoft.com/oldnewthing/20030910-00/?p=42583 - Flydog57
我认为最简单的方法是拥有两个应用程序,一个用于Unity应用程序,在任务栏中根本不会显示,另一个Windows程序则位于托盘中,您可以使用System.Process方法来控制它或tcp/udp/named pipes。 - Ron Beyer
@RonBeyer 后半部分似乎可行,但我该如何使Unity应用程序不显示在任务栏中? - Research Helper
1个回答

2
我从未在Unity中编程,但是我假设您正在Windows窗口中工作。如果您使应用程序的顶级窗口不出现在任务栏的主区域中,将窗口设置为“工具窗口”(通过在窗口上设置WS_EX_TOOLWINDOW扩展样式),则窗口/应用程序将不会显示在任务栏上。
我将让了解足够Unity的人告诉您如何设置该样式。这里有一个参考资料可以开始使用(在Windows方面,而不是Unity方面):管理任务栏按钮

这是一种很好的方法,可以让它从任务栏中消失,但由于我的吉祥物必须拥有一个透明和无边框的窗口,所以这对我来说不太合适。不管怎样,谢谢! - Research Helper
问题已解决,谢谢!原来我只需要将我的窗口设置为工具窗口,然后移除边框并使其透明即可。 - Research Helper
我很惊讶这是个问题。我以前在各种窗口上都设置了TOOL_WINDOW,而且它总是“只是工作”。很高兴我能帮忙。 - Flydog57

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