Ловля Ctrl + Alt + Delete

408
g.d.d.c

У меня есть пользовательский интерфейс Windows, который я разработал в wxPython. Недавно я получил от пользователя сообщение о довольно необычном поведении - когда он разблокировал свой компьютер, ему было показано диалоговое окно с просьбой подтвердить удаление одной из его очередей печати. Копая глубже, фактически получается, что диалог генерируется, когда мой пользователь нажимает Ctrl+ Alt+, Deleteчтобы заблокировать свою рабочую станцию.

Предполагается, что эта комбинация клавиш будет перенаправлена ​​в клиентские приложения? Разумно ли в особом случае, чтобы моя функция обработчика клавиш игнорировала Deleteклавишу, если оба модификатора Ctrl+ Altприсутствуют, когда пользователи нажимают Delete, или мне следует рассмотреть возможность обращения в Microsoft по поводу потенциальной ошибки?

0
Вы должны спросить это на stackoverflow NoNameProvided 10 лет назад 0
@NoNameProvided - я подумал о том, чтобы спросить там, но не был уверен, является ли это специфичным для моей программы или чем-то более общим для Windows, о чем мне следует позаботиться за рамками конкретного фрагмента кода. У меня нет ошибок для устранения неполадок или исправления, меня больше интересовало, должна ли комбинация клавиш когда-либо доходить до клиентского приложения. g.d.d.c 10 лет назад 0
Вы запускали обычные антивирусные программы? HijackThis? Malwarebytes? Обычно, я считаю, что вы правы, окна должны прерывать эту комбинацию ... Еще одна вещь, чтобы проверить, была ли клавиатура каким-то образом переназначена. Madball73 10 лет назад 0
@ Madball73 - Никаких переназначений клавиатуры, о которых я знаю, я могу воспроизвести поведение. Элемент управления List в моем приложении получает событие для клавиши Delete, пока удерживаются Ctrl + Alt. g.d.d.c 10 лет назад 0
Перечитывая ваш случай, кажется, что Windows перехватывает его и имеет приоритет, но все же позволяет другим приложениям реагировать на них в фоновом режиме. Так что, вероятно, работает как задумано с точки зрения MS. Madball73 10 лет назад 0

1 ответ на вопрос

1
Scott Chamberlain

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

Да, вы должны проверить, какие клавиши-модификаторы нажимаются, когда вы получаете команду Delete key, нет, это не ошибка, иначе программы, которым нужно прослушивать Ctrl+ Alt+ Del1, не смогут ее прослушать.

1: Например, VMWare Player выдаст вам всплывающее диалоговое окно, сообщающее, что вам нужно использовать Ctrl+ Alt+ Insдля отправки команды SAS на виртуальную машину вместо Ctrl+ Alt+, Delкогда вы возвращаетесь с экрана SAS.

Спасибо, вот что мне было интересно. Я напишу необходимые проверки, чтобы избежать нежелательного поведения для моих пользователей. Очень признателен! g.d.d.c 10 лет назад 0