Программная разблокировка рабочей станции Windows

Я хотел бы написать небольшое приложение, которое разблокирует рабочую станцию. Чтобы описать то, что мне нужно, очень просто: иметь исполняемый файл, который запускается и в определенное время (скажем, в полночь) разблокирует рабочую станцию. Конечно, приложение знает пользователя и пароль учетной записи, вошедшей в систему.

Я знаю API LogonUser и пробовал его использовать, но потерпел неудачу. У кого-нибудь есть решение, отрывок кода, который действительно работает для этой проблемы?

Я нацелен на ОС NT5.


Ну, раз уж люди начали спрашивать, в чем причина: я работаю над приложением для совместного использования рабочего стола и хочу добавить функцию разблокировки рабочей станции. Наличие очень маленького и простого приложения для разблокировки станции в определенное время позволяет разделить проблему и избежать деталей интеграции.

Почему? Вы уверены, что нет лучшего способа делать то, что вы пытаетесь сделать?

Coincoin 06.10.2008 17:15

Это звучит как очень плохая идея. Какая у этого цель? Наверное, есть лучшее решение ...

user1228 06.10.2008 17:16

Я почти уверен, что это плохая идея и (очень надеюсь) невозможная.

GEOCHET 06.10.2008 17:18

Попробуйте переопределить GINA, но, как говорят двое других, это довольно плохая идея. Зачем вам это нужно, вы можете просто запустить службу на компьютере, чтобы делать с ней все, что вы хотите.

Henry B 06.10.2008 17:19

Не могли бы вы дать какой-нибудь совет, который сработал для вас? Я занимаюсь той же проблемой, и эта статья (waynes-world-it.blogspot.com/2008/04/…) показалась мне интересной. Однако у меня это не работает, поскольку целевое приложение (Rational Functional Tester), которое должно периодически запускаться в интерактивном режиме, проверяет, действительно ли (а не поддельно) разблокирован рабочий стол.

dma_k 13.07.2010 18:59

Для всех вас здесь, заметивших, что это плохо и невозможно. Мы создаем платформу для удаленного тестирования, и нам необходимо удаленно управлять множеством компьютеров параллельно. Заблокированные компьютеры - это плохо, поскольку мы управляем мышью, клавиатурой и захватываем экран для работы с программами. Это чистое зло? Опомнись уже ...

Kobor42 10.04.2014 12:27

Существует больше реализаций для аутентификации пользователя через Windows с использованием C#, могут ли люди не просто ответить на вопрос OP, не вынося суждения о том, чего они пытаются достичь?

ataraxia 26.07.2019 14:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
15
7
26 776
4

Ответы 4

Пусть ваше приложение работает как служба, тогда вам не нужны пользователь / пароль, поскольку он настроен с помощью службы.

Это не отвечает на вопрос.

ataraxia 26.07.2019 14:59

Просто чтобы у вас был ответ на этот вопрос, вместо того, чтобы люди оставляли ответы, которые могли бы быть лучше в виде комментариев.

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

В любом случае, помимо предложения вам иметь службу для выполнения любой работы, которую вы хотите на компьютере, или даже удаленного подключения к компьютеру для выполнения работы, вы можете сделать пользователя следующей информацией. (что касается «фрагментов кода», вы можете сделать это самостоятельно)

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

@finnw: Насчет языка я согласен. Я отредактировал его, чтобы сделать его нейтральным, надеюсь, с OP все в порядке. Однако вы сможете удалить свой -1.

Platinum Azure 29.10.2011 00:00

Еще одно соображение: GINA считается устаревшим. См. msdn.microsoft.com/en-us/magazine/cc163489.aspx

Henry Aloni 09.09.2013 13:12

Просто чтобы добавить еще одно предположение (без каких-либо суждений), autoit (язык сценариев Windows) может иметь ответ, как описано в этом потоке:

Как разблокировать рабочий стол Xp

И я только что нашел еще один сценарий, в котором можно разблокировать рабочий стол;)

В моей ситуации мне нужно было иметь возможность восстановить сеанс консоли после того, как я отключил сеанс терминала (я подключаюсь к киоску 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

Другие вопросы по теме