Разблокировать рабочую станцию Windows программно
Я хотел бы написать небольшое приложение, которое разблокирует рабочую станцию. Чтобы поставить спецификации того, что мне нужно очень просто: используйте exe, который запускается и в определенное время (допустим, полночь) разблокирует рабочую станцию.
Конечно, приложение знает пользователя и пароль зарегистрированной учетной записи.
Я знаю API LogonUser и пытаюсь использовать его, но не удалось.
У кого-нибудь есть решение, выдержка кода, которая действительно работает для этой проблемы?
Я нацелен на ОС NT5.
Ну, так как люди начали спрашивать, в чем причина: я работаю над настольным программным обеспечением, и хочу добавить функцию разблокировки рабочей станции. Наличие очень маленького и простого приложения для разблокировки станции в определенное время заключается в том, чтобы отделить проблему и избежать деталей интеграции.
Ответы
Ответ 1
Просто так у вас есть ответ для этого, а не для людей, оставляющих ответы, которые могут быть лучше в комментариях.
Это, безусловно, возможно, хотя, как многие люди уже сказали, что это не очень мудро, что происходит, если кто-то ходит по компьютеру, когда он разблокируется, сколько времени им нужно играть и т.д.?
В любом случае, помимо предложения о том, что у вас есть служба для выполнения любой работы, которую вы хотите использовать на компьютере hte, или даже для удаленного подключения к компьютеру для выполнения работы, вы можете предоставить пользователю следующую информацию. (что касается "кода", вы можете сделать это сами)
http://www.paralint.com/projects/aucun/ - это реализация GINA, которая сможет предоставить вам права на вход в систему, даже если кто-то еще уже вошел в систему. Послушайте, это может быть то, что вы ищете, и намного безопаснее, чем разблокировать рабочую станцию в определенное время.
В качестве альтернативы рассмотрите возможность создания собственной реализации GINA, которая будет выполнять разблокировку в запланированное время.
Информация о GINA
http://msdn.microsoft.com/en-gb/magazine/cc163803.aspx
http://msdn.microsoft.com/en-us/magazine/cc163786.aspx
После того, как вы разблокировали рабочий стол, я уверен, что вам захочется снова заблокировать его.
http://www.codeproject.com/win32/AntonioWinLock.asp
Ответ 2
Пусть ваше приложение запускается как служба, тогда вам не нужен пользователь/пароль, который настроен с помощью службы.
Ответ 3
Просто добавьте еще один свинец (не имеет никакого суждения), autoit (скриптовый язык Windows) может иметь ответ, как описано в этой теме:
Как разблокировать рабочий стол Xp
И я просто нашел еще один сценарий где можно было бы разблокировать рабочий стол;)
Ответ 4
Для моей ситуации мне нужно было восстановить консольный сеанс после отключения сеанса терминала (я подключаюсь к киоску WinXPe с сенсорным экраном, но без клавиатуры).
Вот решение командной строки, которое я нашел для работы. Вместо закрытия окна сеанса для отключения, я запускаю пакетный файл со следующей строкой. Моя сессия закрыта, и сеанс консоли восстанавливается разблокированным.
-
автоматически разблокировать рабочую станцию после сеанса терминала на WinXP
tscon.exe 0 /dest:console
-
для Windows Vista/7 номер сеанса консоли изменился с 0 на 1, поэтому вам нужно использовать
tscon.exe 1 /dest:console
Ссылка источника: http://arstechnica.com/civis/viewtopic.php?f=15&t=69113