Как разблокировать экран входа в Windows

Вначале я должен сказать, что знаю, что эта тема не нова, и в StackOverflow есть некоторые существующие темы, но я не нашел решения своей проблемы.

Я знаю, что для разблокировки экрана Windows (Win 7 или 8) я должен использовать Credential Provider, поэтому я загружаю

http://www.microsoft.com/en-us/download/details.aspx?id=4057

И написать мой код на чистом C ++. В моем случае MS, предоставленный «SampleHardwareEventCredentialProvider», идеально подходит. Также я читаю другую ветку SO и знаю, что «есть WinLogon и LogonUI. LogonUI отвечает за отображение окна входа в систему и уведомление WinLogon о действиях пользователей. Winlogon реагирует на события из LogonUI и выполняет необходимые действия для входа в систему пользователей, выходить из системы, блокировать сеансы и разблокировать сеансы. «

Я пытаюсь создать внешнее аппаратное событие, которое разблокирует мой компьютер. В моем случае у меня было событие Bluetooth, которое разблокирует мою Windows.

И моя проблема в том, что данный класс:

class CSampleCredential : public ICredentialProviderCredential

и его реализованный метод:

HRESULT CSampleCredential::Initialize(
CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
const CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR* rgcpfd,
const FIELD_STATE_PAIR* rgfsp
)

Я не знаю, как код C ++ точно может разблокировать экран Windows.

Что меня задело? Я пытаюсь с методом Initialize, потому что я видел подобный пример (но без возможности повторного использования из-за неполноты):

http://blogs.msdn.com/b/securitytools/archive/2009/07/30/how-to-build-custom-logon-ui-s-in-windows-vista.aspx

Итак, я попробовал 2 вещи:
-CSampleCredential :: Initialize ()
-BOOL LogonUser () -с «localhost» «userName» «userPassword»

но оба они не работали на меня.
Так что же является ключевой точкой (codeLine), которая разблокирует для пользователя синий экран Windows?

1

Решение

Задача ещё не решена.

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