我想创建一个桌面乐队。我必须使用C++;? 我想创建一个桌面带来显示一些关于我的Windows任务栏的信息,但是我正在努力实现C++中需要的功能。自从我接触C++以来,它已经大约10-15年了。在过去的7年里,我一直完全在.NET中工作

我想创建一个桌面乐队。我必须使用C++;? 我想创建一个桌面带来显示一些关于我的Windows任务栏的信息,但是我正在努力实现C++中需要的功能。自从我接触C++以来,它已经大约10-15年了。在过去的7年里,我一直完全在.NET中工作,c++,winapi,shell-extensions,deskband,C++,Winapi,Shell Extensions,Deskband,在你说之前,我知道桌面乐队已经被弃用了。但是建议的替换UI元素-缩略图工具栏-不符合我的需要。我需要一个用户界面元素,无论用户切换到哪个应用程序,它都能始终对用户可见,并且提供足够的空间来显示一行文本——我可以用30个字符左右的空间 我已经能够从Windows SDK示例中获取DeskBand进行编译和运行,但现在我需要实现一些真正的功能-特别是 查找AppData\Local文件夹(SHGetKnownFolderPath(FOLDERID\u LocalAppData…) 监视XML文件的

在你说之前,我知道桌面乐队已经被弃用了。但是建议的替换UI元素-缩略图工具栏-不符合我的需要。我需要一个用户界面元素,无论用户切换到哪个应用程序,它都能始终对用户可见,并且提供足够的空间来显示一行文本——我可以用30个字符左右的空间

我已经能够从Windows SDK示例中获取DeskBand进行编译和运行,但现在我需要实现一些真正的功能-特别是

  • 查找AppData\Local文件夹(
    SHGetKnownFolderPath(FOLDERID\u LocalAppData…
  • 监视XML文件的修改。每当文件更改时,我都需要解析和重新绘制
  • 解析XML文件(我发现)
  • 在我的DeskBand中显示XML文件中的一些数据
  • 设置计时器以每分钟重新绘制DeskBand一次

……我意识到我对C++的认识有多么少,以及我是如何依赖.NET的基类库的。如果我在C语言中写这个任务,我会觉得非常简单。但是我在别处学到了。 咬紧牙关?有没有一种更容易的语言来实现?或者Python?我必须咬紧牙关,在C++中这样做吗?如果是这样,那么对于.NET开发者在C++中实现WiAPI API扩展的任何建议?


外壳。扩展是COM对象,C++是开发COM对象时使用的最好的语言,因为COM主要是为C++设计的,但它不是唯一的语言。COM有标准化的体系结构,所以可以使用支持COM对象开发的.NET之外的任何语言。(Delphi、VB等)开发外壳扩展(类似于Win32 API主要是为C设计的,但任何C兼容语言都可以访问它)。

我的一些研究似乎已经过时。现在阅读.NET 4.0如何改变这种情况……也不要费心尝试使用.NET 4:“答案仍然是否定的。”如果性能是唯一的问题,我可能仍然会采用.NET 4.0路线。我认为,对于DeskBand的加载来说,五秒钟的延迟比上下文菜单的显示要小得多。根据我链接到的文章:“尽管版本4解决了并行问题,.NET Framework仍然是一个高影响的运行时,.NET Framework中有许多COM互操作部分不适合在围绕本机代码设计的扩展模型中使用。”