Я хочу отключить CTRL+ALT+DEL в Windows XP в моем коде ANSI-C?
Я хочу отключить CTRL+ALT+DEL в Windows XP в моем коде ANSI-C. Возможно ли это сделать?
6 ответов
прежде всего, захват Ctrl-Alt-Del (Secure Attention Sequence) и его отключение-это две разные вещи. Несмотря на заблуждения многих можно отключить SAS.
вот 3 способа сделать это:
установить HKCU / программное обеспечение / Microsoft/Windows/CurrentVersion/политики/система / DisableTaskMgr = 1
заменить msgina.dll с вашим собственным или написать драйвер клавиатуры.
перейдите в меню Пуск, выберите Выполнить и введите "gpedit.msc " для запуска редактора групповой политики. Посмотрите в пользовательской конфигурации / административных шаблонах / системе, и вы найдете раздел под названием Ctrl+Alt + Del Options - "удалить Диспетчер задач"
чтобы поймать SAS, вы можете написать заглушку GINA, создать драйвер клавиатуры или заменить TaskMgr.exe
эти требования возникают главным образом для врезанных систем и Вы имеете контроль над как изображение WinXP сделано.
ссылка: MSDN Mag сентябрь 2002
положить крючки в систему клавиатура не будет делать трюк, несмотря на то, что некоторые здесь говорят.
система клавиатуры работает путем выдавать определенное аппаратное прерывание. ОС ловит это прерывание и реагирует на него соответствующим образом. Это будет то, на что влияют крючки клавиатуры.
последовательность CTRL-ALT-DEL выдает отдельное аппаратное прерывание от других клавиш. Это было сделано изначально, чтобы команда перезагрузки была доступна даже тогда, когда остальные команды клавиатуры были заморожены. (Хотя приложение terminate-stay-resident в MS-DOS все еще может перехватывать и обрабатывать прерывание.)
причина, по которой последовательность ключей теперь используется для входа в систему, заключается в этом поведении. Поскольку он выдает отдельное аппаратное прерывание, последовательность используется для проверки того, что какое-то другое приложение не вставило свои крючки. Это делается для предотвращения подмены приглашения на вход.
Я не говорю, что невозможно поймать это прерывание и измените его поведение. Я не знаю, что это не так. Но это будет не так просто, как положить крючки в код обработки клавиатуры.
Winlogon просто вызывает SetWindowsHookEx
на рабочем столе по умолчанию для ловушки CAD. Так как только нить, которая называется SetWindowsHookEx
может отменить регистрацию крючка, он убедился, что никакой другой процесс не может украсть его. Кроме того, крючок клавиатуры работает только на рабочем столе процесса. Вы можете попробовать переключиться на новый рабочий стол и нажать CAD.
Некоторая внутренняя информация здесь.
почему все ответы говорят, что это невозможно? Это очень возможно, например, вот как включить его в случае, если вирус отключил его:
Click Start Click Run Enter gpedit.msc in the Open box and click OK In the Group Policy settings window Select User Configuration Select Administrative Templates Select System Select Ctrl+Alt+Delete options Select Enable Task Manager
Как сделать это отключить и как это сделать из кода, я дам вам выяснить, (подсказка: вы, вероятно, захотите изменить некоторые ключи реестра), так как этот вопрос довольно подозрительный.
вы также можете установить различные крючки клавиатуры, которые изменяют функциональность ctrl + alt + удалить.
вы можете прочитать о API реестра здесь.
Если вы хотите, чтобы ничего не происходило при нажатии ctrl alt delete, просмотрите крючки windows и подключение Windows API. Это нелегко кодировать; если вы хотите подключить API, я предлагаю этой библиотека вы можете сделать это с помощью классических крючков windows, однако.
Вам нужно будет написать свою собственную msgina.DLL в rigurously крючок эту функцию. Если у вас нет абсолютно чтобы отрезать любой ответ на эту команду (и вы, вероятно, этого не сделаете), вы, скорее всего, сможете уйти с более простыми методами.
Это ответ на то, что хочет сделать ОП, а не сам вопрос...
самый простой способ достичь вашей цели - написать драйвер фильтра клавиатуры, который отбрасывает все входные данные. (Это действительно единственное правильно способ отключения всех входных данных, которые я могу придумать, и является методом, используемым такими продуктами, как LogMeIn)