gpt4 book ai didi

c++ - 我想创建一个 DeskBand。我必须使用 C++ 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 01:49:39 26 4
gpt4 key购买 nike

我想创建一个 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# 编写,这个任务对我来说会非常容易。但我在别处了解到 you shouldn't write shell extensions in .NET .

我有哪些选择?有没有更简单的语言来完成这个——也许是 Python?还是我必须硬着头皮在 C++ 中执行此操作?如果是这样,对于尝试在 C++ 中实现 WinAPI 外壳扩展的 .NET 开发人员有什么建议吗?

提前谢谢你。

最佳答案

Shell 扩展是 COM 对象,而 C++ 通常是开发 COM 对象时使用的最佳语言,因为 COM 主要是为 C++ 设计的,但它不是唯一可能的语言。 COM 具有标准化的体系结构,因此您可以使用 .NET 之外的任何支持 COM 对象开发的语言(Delphi、VB 等)来开发 Shell 扩展(类似于 Win32 API 主要为 C 设计的方式,但任何与 C 兼容的语言语言可以访问它)。

关于c++ - 我想创建一个 DeskBand。我必须使用 C++ 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16281998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com