winapi — я хочу создать DeskBand. Должен ли я использовать C ++?

Я хочу создать DeskBand для отображения некоторой информации на панели задач Windows, но я борюсь за реализацию функциональности, которая мне нужна в C ++. Прошло около 10-15 лет с тех пор, как я коснулся C ++. Я работаю полностью в .NET в течение последних 7 лет.

Прежде чем вы это скажете — я знаю, что DeskBands устарели. Но предложенный заменяющий элемент пользовательского интерфейса — панели миниатюр — не отвечают моим потребностям. Мне нужен элемент пользовательского интерфейса, который постоянно виден пользователю независимо от того, на какое приложение он переключается, а также обеспечивает достаточно места для отображения строки текста — я мог бы обойтись с пространством для 30 символов или около того.

Мне удалось получить DeskBand из образца Windows SDK для компиляции и запуска, но теперь мне нужно реализовать некоторые реальные функции — в частности …

  • Нахождение папки AppData \ Local (SHGetKnownFolderPath(FOLDERID_LocalAppData...)
  • Просмотр XML-файла для модификаций. Мне нужно разобрать и перекрасить всякий раз, когда файл меняется.
  • Разбор XML-файла (я нашел pugixml)
  • Отображение некоторых данных из файла XML в моем DeskBand
  • Установка таймера для перекраски DeskBand один раз в минуту

… и я понимаю, как мало я знаю о C ++ и насколько сильно я зависел от библиотеки базовых классов .NET. Эта задача была бы очень легкой для меня, если бы я писал ее на C #. Но в другом месте я узнал, что Вы не должны писать расширения оболочки в .NET.

Какие у меня варианты? Есть ли более простой язык для этого — возможно, на Python? Или я должен просто прикусить пулю и сделать это в C ++? Если да, то какой совет для разработчика .NET пытается реализовать расширение оболочки WinAPI на C ++?

Заранее спасибо.

2

Решение

Расширения оболочки — это COM-объекты, и C ++, как правило, является лучшим языком для разработки COM-объектов, потому что COM был разработан в первую очередь для C ++, но это не единственный возможный язык. COM имеет стандартизированную архитектуру, поэтому вы можете использовать любой язык, кроме .NET, который поддерживает разработку COM-объектов (Delphi, VB и т. Д.) Для разработки Shell Extensions (аналогично тому, как Win32 API предназначен в первую очередь для C, но любой C-совместимый). язык может получить к нему доступ).

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]