我想创建一个 DeskBand 来在 Windows 任务栏上显示一些信息,但我正在努力在 C++ 中实现我需要的功能。我接触C++已经有10-15年了。过去 7 年我一直在 .NET 中工作。
在你说之前 - 我知道 DeskBands 已被弃用。但建议的替换 UI 元素 - 缩略图工具栏 - 不能满足我的需求。我需要一个 UI 元素,无论用户切换到哪个应用程序,该元素始终可见,并且提供足够的空间来显示一行文本 - 我可以容纳 30 个字符左右的空间。
我已经能够从 Windows SDK 示例中获取 DeskBand 进行编译和运行,但现在我需要实现一些实际功能 - 特别是...
- 找到 AppData\Local 文件夹(
SHGetKnownFolderPath(FOLDERID_LocalAppData...
)
- 监视 XML 文件的修改。每当文件发生变化时,我都需要解析和重新绘制。
- 解析 XML 文件(我发现pugixml)
- 在我的 DeskBand 中显示 XML 文件中的一些数据
- 设置计时器以每分钟重新绘制一次 DeskBand
...我意识到我对 C++ 知之甚少,而且我已经非常依赖 .NET 的基类库。如果我用 C# 编写这个任务对我来说会非常简单。但我在其他地方了解到你不应该在 .NET 中编写 shell 扩展.
我有什么选择?有没有一种更简单的语言可以完成这个任务——也许是Python?或者我必须硬着头皮用 C++ 来做这件事?如果是这样,对于尝试在 C++ 中实现 WinAPI shell 扩展的 .NET 开发人员有什么建议吗?
先感谢您。
Shell 扩展是 COM 对象,而 C++ 通常是开发 COM 对象时最好使用的语言,因为 COM 主要是为 C++ 设计的,但它并不是唯一可能的语言。 COM 具有标准化架构,因此您可以使用 .NET 之外支持 COM 对象开发的任何语言(Delphi、VB 等)来开发 Shell 扩展(类似于 Win32 API 主要为 C 设计,但任何与 C 兼容的语言)语言可以访问它)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)