Как выйти из системы, когда рабочая станция заблокирована?

Я написал приложение для Windows, которое поставляется с двумя модулями: сервисное и пользовательское. Служба реализует свой собственный планировщик и может отключить пользователя в заранее установленное время. Для этого я использовал следующий вызов, который запускается из моего модуля пользовательского режима, работающего в сеансе вошедшего в систему пользователя, который должен быть отключен:

BOOL result = ExitWindowsEx(EWX_LOGOFF, reason);

Это работает нормально, за исключением ситуации, когда учетная запись пользователя заблокирована. В этом случае, похоже, что API вообще ничего не делает, даже если я вернул 1 из него.

Мне было любопытно, есть ли другой способ выйти из системы, когда его учетная запись заблокирована? (В этом случае у меня есть одно условие: если у этого пользователя были какие-либо несохраненные документы, выход из системы не должен быть принудительным.)

2

Решение

Попробуй это:

DWORD dFlags = EWX_LOGOFF | EWX_FORCE | 0x10200;

BOOL result = ExitWindowsEx(dFlags, reason);
-1

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

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

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