Чтобы добавить к тому, что сказал Shog9, если ваше приложение может перехватывать ctrl + alt + del, тогда ваше приложение сможет притвориться диалоговым окном входа в Windows, и таким образом обманом заставит конечного пользователя вводить свои учетные данные в ваше заявление.
Если вы хотите заменить диалоговое окно входа в Windows, см. Winlogon и GINA (но там написано: «DLL-библиотеки GINA игнорируются в Windows Vista», и я не слышал, что для Vista) .
если бы кто-то спросил, я бы не сказал им, что они не могут.
Более конкретно, ваше «прикладное программное обеспечение» не может: вместо этого, по замыслу, только «системное программное обеспечение» может сделать это; и это не значит, что вы не можете или не можете писать системное программное обеспечение, но ваш OP, казалось, совершенно ясно спрашивал, как это сделать без написания системного программного обеспечения ... и ответ на , что это то, что вы не можете: потому что система разработана так, чтобы приложение не могло перехватить эти комбинации клавиш.
Можете ли вы дать мне направление на написание системных вещей ... Я действительно думаю, что было бы лучше, если бы это было на системном уровне ... Это для OEM, так что это действительно так. Также, если бы я написал это на системном уровне, я мог бы написать приложение для управления им.
Драйвер устройства фильтрации клавиатуры или, например, DLL-библиотека GINA будет рассматриваться как системное программное обеспечение: устанавливается администратором (или OEM) и запускается как часть O / S.
Я не знаю о Джине, кроме ее имени; и я уже (выше) дал ссылку на это в MSDN. Я ожидаю, что это код пользовательского режима Win32.
Драйверы устройств - это отдельная тема: например, Начало работы по разработке драйверов .
Есть ли способ переназначить клавиатуру, чтобы удалить не там, где она была?
Я все еще не уверен, что вы и / или ваш начальник правильно поняли. ИМХО, вы не должны быть приложением, которое запрещает пользователю нажимать Ctrl-Alt-Del. Если вы хотите запретить пользователю доступ к системе без ввода пароля, вы должны заблокировать (защитить паролем) систему, как если бы пользователь нажал Ctrl Alt Del и затем выбрал «Заблокировать этот компьютер». Чтобы разблокировать компьютер, им нужно будет нажать Ctrl Alt Del и ввести свои учетные данные в WinLogon.
Однако, игнорируя то, что вы должны делать, и концентрируясь вместо этого на том, на что вы способны, если вы хотите перехватить клавиатуру, очевидно, это можно сделать. Я сам не изучал клавиатуры, но этот пост и этот пост заявляют об успехе, написав «Драйвер фильтра клавиатуры» (который является своего рода режимом ядра, а не Win32, драйвер устройства). Если вы напишите один из них, вы можете получить откат назад, например, как эта реакция от DDK MVP , или эта реакция от антиспадающего продукта .