Windows Explorer использует COM в качестве модели расширения. Следовательно, технически говоря, вы можете использовать все, что захотите, если оно поддерживает COM.
Для NodeJS вы будете зависеть от среды выполнения, чтобы предоставить вам поддержку COM и обернуть соответствующий API. Я не знаю ни одного проекта, который делал бы это для API Windows Shell. Здесь - это один для API WinRT.
Для C# (. NET), опять же, вы будете зависеть от среды выполнения для поддержки COM. . NET раскрывает вам это; хотя это грязно. Есть несколько проектов, которые обертывают API-интерфейсы оболочки и пытаются скрыть липкую среду COM-взаимодействия, насколько это возможно.
Вот проект с открытым исходным кодом . Вот коммерческий .
Имейте в виду, что Microsoft не рекомендует создавать расширения оболочки, требующие времени выполнения (например:. NET). Среда выполнения может быть загружена в процессы, которые этого не ожидают. Поэтому на практике Microsoft ожидает, что вы будете использовать C / C ++ для создания расширений оболочки. Здесь - это образец проекта, предоставленный Microsoft. Написан на C ++.