Вы не читали вещи из недокументированных случайных мест в реестре, потому что это всего лишь деталь реализации, где Windows, в настоящее время хранит эти данные: это легко может случиться, что:
- в какой-то следующей версии Windows они решат, что такие данные необходимо хранить в другом месте;
- данные, которые вы нашли, есть только в некоторых конфигурациях (некоторые определенные версии IE установлены, машина не присоединилась к Active Directory, нет переадресации папок на место, ...) - но вы не можете этого знать, нет документация, которая гарантирует вам что-либо.
Правильный путь заключается в использовании документированных интерфейсов, что обеспечивает ОСА, на которой Microsoft явно делает обещание совместимости (они обещают, что публичная функцию, которая работает сегодня - если используется в соответствии с документацией - будет продолжать работать завтра).
Т.Л., д-р: использовать SHGetKnownFolderPath
- или SHGetFolderPath
если вы хотите сохранить совместимость с версиями Windows, до Vista, которая в целом является хорошей вещью, учитывая, что Windows XP до сих пор, кажется, больше рынка чем все версии OS X.
http://blogs.msdn.com/b/oldnewthing/archive/2011/03/22/10144082.aspx –