Как я могу прервать все ключевые события, включая ctrl+alt+del и ctrl+tab?

Я смог заставить его работать после обновления ядра, следуя инструкциям в этом блоге.

https://mymemorysucks.wordpress.com/2016/03/31/docker-graphdriver-and-aufs-failed-driver-not-supported-error-after-ubuntu-upgrade/

sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

sudo modprobe aufs

sudo service docker restart

5
задан Shog9 20 May 2009 в 04:18
поделиться

8 ответов

Чтобы добавить к тому, что сказал Shog9, если ваше приложение может перехватить ctrl + alt + del, тогда ваше приложение сможет притвориться диалоговым окном входа в Windows, и тем самым обмануть конец -пользователь вводит свои учетные данные в ваше приложение.

Если вы действительно хотите заменить диалоговое окно входа в Windows, см. Winlogon и GINA (но там написано: «DLL-библиотеки GINA игнорируются в Windows Vista» и Я не слышал, что такое Vista).

если бы кто-то спросил, я бы не сказал им, что они не могут.

Точнее говоря, ваше «прикладное программное обеспечение» не может: вместо этого, по замыслу, только » системное программное обеспечение "может это сделать; и дело не в том, что вам не разрешено или невозможно писать системное программное обеспечение, но ваш OP, казалось, довольно четко спрашивал, как это сделать без написания системного программного обеспечения ... и ответ на , что , заключается в том, что вы не можете: потому что система предназначена для предотвращения подключения приложения комбинации клавиш.

Не могли бы вы дать мне направление для написания системных вещей ... Я вообще-то думаю, что было бы лучше, если бы это был системный уровень ... Это для OEM-производителей, так что действительно важно. Также, если бы я написал его на системном уровне, я мог бы написать приложение для управления им.

Драйвер устройства фильтрации клавиатуры или, например, GINA DLL, будет считаться системным программным обеспечением: установлено администратором (или OEM) и запускается как часть O / S.

Я ничего не знаю о GINA, кроме его названия; и я уже (выше) дал ссылку на это в MSDN. Я ожидаю, что это код пользовательского режима Win32.

Драйверы устройств - это отдельная тема: например, Начало работы по разработке драйверов .

Есть ли способ переназначить клавиатуру, чтобы удалить не там, где она была?

Я все еще не убедитесь, что у вас и / или вашего начальника есть правильная идея. IMHO, вы не должны быть приложением, которое не позволяет пользователю нажимать Ctrl-Alt-Del. Если вы хотите запретить пользователю доступ к системе без ввода пароля, вам следует заблокировать (защитить паролем) систему, как если бы пользователь нажал Ctrl Alt Del, а затем выбрал «Заблокировать этот компьютер». Чтобы разблокировать компьютер, им нужно будет нажать Ctrl Alt Del и ввести свои учетные данные в WinLogon.

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

15
ответ дан 18 December 2019 в 05:12
поделиться

Вы не можете. Весь смысл Ctrl + Alt + Del заключается в том, что с этим справляется только система, потому что таким образом система может всегда обрабатывать его.

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

31
ответ дан 18 December 2019 в 05:12
поделиться

Я не тестировал его, но как насчет использования SetWindowsHookEx ()

Из документа MSDN: WH_KEYBOARD_LL

Windows NT / 2000 / XP: Устанавливает подключаемую процедуру, которая отслеживает события ввода с клавиатуры низкого уровня. Для получения дополнительной информации см. Подключаемую процедуру LowLevelKeyboardProc.

4
ответ дан 18 December 2019 в 05:12
поделиться

Вы могли добиться этого в XP и ранее, но не в Vista.

1
ответ дан 18 December 2019 в 05:12
поделиться

Можно перехватить crtl + alt + del, хотя, очевидно, Microsoft сделала это очень это сложно сделать, потому что тогда вы можете открыть диалоговое окно фальшивой блокировки и записать пароли людей.

Ответ - написать драйвер устройства. Я не могу вспомнить, можете ли вы использовать простой старый фильтр клавиатуры или вам нужно написать ISR клавиатуры. В любом случае, это, безусловно, возможно, но с большой болью, если у вас нет опыта вождения.

3
ответ дан 18 December 2019 в 05:12
поделиться

Попробуйте написать приложение, которое запускается как хранитель экрана, защищенный паролем.

Заставки могут делать больше, чем просто отображать красивые картинки - раньше я видел интерактивные заставки, которые использовали мышь и клавиатура, чтобы создать простую игру, хотя я не могу вспомнить, в какой версии окон я видел, что это работало ... Это вполне могла быть Windows 95 (в этом случае все ставки отключены).

1
ответ дан 18 December 2019 в 05:12
поделиться

А как насчет перехвата нажатий клавиш ctrl и alt во время работы программы и отмены этих нажатий клавиш?

Я не знаю, насколько хорошо это будет работать, если вообще будет работать в Vista, но попробовать стоит.

Я помню, как делал что-то подобное примерно в 2001 году, так что это, вероятно, работало на 98. Слишком давно я даже не пытался вмешиваться с чем-то вроде блокировки ctrl-alt-del.

1
ответ дан 18 December 2019 в 05:12
поделиться

Хорошо .. Я не собираюсь размещать здесь код Но суть в том, что это

крючок для клавиатуры. когда пользователь нажимает ctrl || alt || delete установить bools в значение true .. если они нажмут что-нибудь еще, установите для них все значение false.

switch (p_key)
            {
                default: Clear(); break;

                case Keys.LMenu: altHit = true; break;
                case Keys.RMenu: altHit = true; break;
                case Keys.LControlKey: ctrlHit = true; break;
                case Keys.RControlKey: ctrlHit = true; break;
                case Keys.Delete: delHit = true; break;

когда на экране фокус переходит к диспетчеру задач, закройте чертову штуку. Экран мигает так быстро, что пользователь этого не замечает. И я могу делать все, что хочу.

Я признаю, что это путаница, но она дает желаемый эффект. (О, если бы мне не пришлось этого делать)

1
ответ дан 18 December 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: