Какие-нибудь альтернативы SHGetKnownFolderPath с пользовательским токеном для Windows XP?
Мое программное обеспечение все еще требуется для поддержки Windows XP. В нем я вызываю SHGetKnownFolderPath API из службы Windows для получения пользовательских путей (таких как FOLDERID_Desktop
) от hToken
, Поскольку этот API не поддерживается в XP, мне интересно, есть ли альтернативные способы сделать это на этой ОС?
1 ответ
Правильная функция для использования будет SHGetFolderLocation, передавая либо NULL
или же -1
в качестве токена доступа:
hToken [в]
Тип: РУЧКА
Токен доступа, который можно использовать для представления конкретного пользователя. Обычно для него задано значение NULL, но оно может понадобиться, если для этих папок существует несколько пользователей, которые рассматриваются как принадлежащие одному пользователю. Наиболее часто используемая папка этого типа - Мои документы. Вызывающее приложение отвечает за правильное олицетворение, когда hToken не равен NULL. Он должен иметь соответствующие привилегии безопасности для конкретного пользователя, и куст реестра пользователя должен быть в настоящий момент подключен. См. Контроль доступа для дальнейшего обсуждения вопросов контроля доступа.
Присвоение параметру hToken значения -1 указывает пользователя по умолчанию. Это позволяет клиентам SHGetFolderLocation находить местоположения папок (например, папку "Рабочий стол") для пользователя по умолчанию. Профиль пользователя по умолчанию дублируется при создании любой новой учетной записи пользователя и включает в себя специальные папки, такие как "Мои документы" и "Рабочий стол". Любые элементы, добавленные в папку "Пользователь по умолчанию", также отображаются в любой новой учетной записи пользователя.