我想创建一个DeskBand来在我的Windows任务栏上显示一些信息,但我正在努力实现我在C ++中需要的功能。自从我接触C ++以来,已经有大约10到15年了。在过去的7年里,我一直在.NET工作。
在你说之前 - 我知道DeskBands已被弃用。但建议的替换UI元素 - 缩略图工具栏 - 不符合我的需求。无论用户切换到哪个应用程序,我都需要一个对用户始终可见的UI元素,并且还提供足够的空间来显示一行文字 - 我可以通过30个字符左右的空间来获取。
我已经能够从Windows SDK示例中获取DeskBand来编译和运行,但现在我需要实现一些真正的功能 - 特别是......
SHGetKnownFolderPath(FOLDERID_LocalAppData...
)......我意识到我对C ++的了解有多少,以及我有多少依赖于.NET的基类库。如果我用C#编写这个任务对我来说非常容易。但我在其他地方学到了you shouldn't write shell extensions in .NET。
我有什么选择?有没有更简单的语言来实现这一点 - 也许是Python?或者我必须咬紧牙关并在C ++中执行此操作?如果是这样,对.NET开发人员试图在C ++中实现WinAPI shell扩展的任何建议?
提前谢谢。
答案 0 :(得分:3)
Shell Extensions是COM对象,C ++通常是开发COM对象时使用的最佳语言,因为COM主要是为C ++设计的,但它不是唯一可能的语言。 COM具有标准化的体系结构,因此您可以使用支持COM对象开发的.NET之外的任何语言(Delphi,VB等)来开发Shell Extensions(类似于Win32 API主要针对C设计,但任何C兼容)语言可以访问它。)