C# 在 Windows 10 上如何在任务栏显示文本

18

我希望在任务栏中像NetSpeedMonitor程序一样显示文本。我考虑过Windows是如何使用日期和时间显示来实现的,但我找不到任何答案。我想使用C#和.Net 4.x实现这个功能。

enter image description here


  1. 创建画笔 -> 创建位图 -> 创建图形 -> 在图形上绘制文本 -> 转换为图标
- Zach Schulze
@ZachSchulze 我已经这样做了,但我的图标始终很小,即使我使用了更大的位图。我发现了一个关于最大图标大小的主题:http://stackoverflow.com/questions/32762463/windows-10-icons-in-taskbar-have-wrong-size?rq=1 - Spidev
@Sergey.quixoticaxis.Ivanov,你可以给我一个小例子吗? - Spidev
3
@Spidev https://www.codeproject.com/Articles/2219/Extending-Explorer-with-Band-Objects-using-NET-and - Zach Schulze
1
@Spidev 我也不知道这些东西叫什么。我进行了快速搜索,似乎这个功能通常被称为“任务栏小程序”(时钟、计算器等内置于任务栏左侧的托盘区域,就像您的屏幕截图所示)。不幸的是,这个功能在 .Net 中不可用,因此您需要使用 P\Invoke 来使用它。更新:当我正在输入时,上面已经发布了链接 =) - Sergey.quixoticaxis.Ivanov
显示剩余2条评论
1个回答

12

如果你看这张图片:

在这里输入图片描述

你会发现Windows应用程序中的每个元素都有一个句柄(HWND),如果你获取到它,就可以改变该应用程序的参数,并添加或删除任何内容。如果查看此链接,其中提供了控制台应用程序的示例,你只需要在任务栏上执行相同的操作即可。

我创建了一个dll,使其适用于所有Office应用程序,以便在C#中使用它们,就像这样,并且我是通过使用Office和我的应用程序的句柄来完成的。


2
你能帮我点赞这个问题吗?因为我发现类似的问题答案总是NotifyIcon,但作者从未批准过答案,因为它们没有帮助到他们。感谢回答这个问题,我已经搜索了几个小时! - Spidev
我下载了文件Win32Controls.cs并将其放入我的项目中。但是在“using System.Windows.Native;”处出现错误,提示该命名空间不存在,可能是一个程序集引用问题。 - Spidev
你的完整错误是什么?使用这些函数时,你不需要更多的汇编语言,只需通过代码将它们导入到你的项目中即可。 - Shahrooz Ansari
2
好的,我翻译一下这个英文错误提示:"命名空间“System.Windows”中没有可用的“Native”类型或命名空间。using 指令是不必要的。" 我只需要删除这行代码就能解决这个问题。希望这不会影响到程序的功能。我是C#的初学者,我的主要编程语言是Java :)。谢谢你的帮助。 - Spidev
欢迎,朋友。 - Shahrooz Ansari
显示剩余2条评论

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