Отключить комбинацию клавиш Ctrl + Alt + Del на windows7 - PullRequest
6 голосов
/ 17 марта 2012

Я работаю над приложением (написанным на C #), которое имеет настройку для запуска в режиме KIOSK.У меня есть только один вызов: отключить комбинацию Event Ctrl + Alt + Del .

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

Ответы [ 5 ]

10 голосов
/ 17 марта 2012

CTRL + ALT + DEL - это защищенная последовательность внимания Windows NT (и ее производных, таких как Win7). Это единственная комбинация клавиш, которая гарантированно привлечет внимание ОС. Весь смысл SAS в том, что он не может быть перехвачен или остановлен пользовательскими программами.

Одной из проблем безопасности, с которой он сталкивается, является ложный экран входа в систему: рассмотрим экран, который выглядит точно так же, как обычный экран входа в Windows. Невозможно сказать, что это подделка, просто взглянув на нее. Но, если у вас есть привычка всегда нажимать CTRL + ALT + DEL перед входом в систему (есть возможность всегда требовать его для законного экран), нажатие SAS на экране ложного входа вызовет диспетчер задач или экран безопасного внимания (с параметрами выхода из системы, изменения пароля и т. д.). Реальный экран входа в систему не делает этого; он просто остается на экране. До тех пор, пока сама ОС не будет заменена или скомпрометирована, CTRL + ALT + DEL защитит вас от ложных экранов входа в систему. Если бы пользовательская программа могла перехватить SAS, это ничего не стоило бы.

SAS был заложен в дизайн Windows NT с самого начала (это было в первом выпуске в 1993 году), поэтому обойти его будет непросто. Я уверен, что есть драйверы фильтра клавиатуры - или что-то, что может перехватить эту последовательность - которые предназначены для использования в киосках.

2 голосов
/ 17 марта 2012

Невозможно захватить CTRL + ALT + DEL , так устроено во всех системах Windows. Это проблема безопасности, если пользователь нажимает CTRL + ALT + DEL , он или она должны быть уверены, что это операционная система, а не какое-либо приложение (возможно, троянец, перехватывающий пароли), который отвечает на него.

Полагаю, что для захвата CTRL + ALT + DEL вам потребуется написать какой-нибудь драйвер устройства.

Редактировать: Также см. Этот ответ . Я не пробовал, но вопрос довольно похож.

1 голос
/ 17 марта 2012

Хотя это и возможно, но это не простая задача и не то, что можно сделать в C #. В этой статье будет показано, как отключить CTRL + ALT + DEL с помощью редактора групповой политики.Чтобы навсегда отключить комбинацию, вам нужно либо написать свой собственный драйвер клавиатуры, либо написать свою собственную заглушку GINA (Графическая идентификация и аутентификация).

0 голосов
/ 17 марта 2012

Вам нужно будет выполнить P / Invoke, в user32.dll , есть метод с именем SystemParametersInfo, за этими сведениями обращайтесь

http://pinvoke.net/search.aspx?search=SystemParametersInfo&namespace=[All]

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947%28v=vs.85%29.aspx

Я давно делал нечто подобное, но у меня больше не было кода, хотя я нашел это (это в vb6), но не должно быть слишком сложно понять идею иперевести на .NET

http://www.developerfusion.com/code/1021/how-to-disable-ctrlaltdel/

0 голосов
/ 17 марта 2012

Можно подобрать комбинацию CTRL + ALT + DEL , но не отключить ее.
Я пытался отключить его с помощью SetWindowsHookEx и WH_KEYBOARD_LL, и вы можете успешно получать уведомления при нажатии CTRL + ALT + DEL , но Вы ничего не можете с этим поделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...