3

Я часто сталкиваюсь с диалогом UAC. Когда он появляется, мой экран отключается на секунду, а затем снова отображается со всем тусклым, кроме блока UAC. Коробка имеет две кнопки "Да" и "Нет". По умолчанию кнопка "Нет", и она изначально выбрана.

На данный момент мой самый распространенный ответ - как-то сказать "Да". Это потому, что окно всплыло в ответ на что-то, что я сделал мгновение назад, и это то, что мне нужно сделать. Теперь метод, который я предпочитаю использовать в большинстве подобных ситуаций, когда я должен ответить на диалоговое окно, которое я вижу довольно часто, - это использовать одну из клавиш быстрого доступа для этого поля. Например, при выходе из winword я, возможно, не захочу изменять открытый у меня документ, поэтому я просто нажимаю "n", где в диалоговом окне указываются "_Yes", "_No" и "_Cancel". Аналогичным образом, кнопки блока UAC - это "_Yes" и "_No". Однако по какой-то причине нажатие клавиши быстрого доступа на самом деле ничего не делает в поле UAC.

Я пытался найти других людей с этой проблемой. Я наткнулся на то, что http://www.native-instruments.com/forum/showthread.php?p=1056830, где пользователь предлагает «если у вас включен UAC, и нажимает" y "каждый раз, когда вам предлагают «. Это означает, что нажатие сочетания клавиш должно работать для некоторых людей. Я хотел бы знать, как включить его на моем компьютере с Windows 7 Professional.

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

РЕДАКТИРОВАТЬ: Я подумал, что хотел бы уточнить, что я задал этот вопрос, прежде чем я знал, что такое сочетания клавиш акселератора или что «нормальный» способ активировать сочетания клавиш акселератора - удерживать нажатой клавишу Alt при нажатии подчеркнутой клавиши. Из ответов я узнал, что alt иногда требуется. С тех пор я нашел это полезным для этой ситуации: если текстовое поле сфокусировано в окне, вы можете использовать alt+mnemonic, чтобы нажать на конкретную кнопку (мой старый «я» попытался бы сначала стереть текстовое поле или использовать мышь),

2 ответа2

9

Аннотация

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

Безопасность

Во многих простых диалоговых окнах вы можете нажать клавишу ускорения, не удерживая Alt (например, диалоговые окна «Да-Нет», диалоговые окна ARF (рисунок 1), диалоговые окна копирования файлов в Проводнике (рисунок 2) и т.д.), Но приглашение UAC является особенным, поскольку это имеет последствия для безопасности, которые могут быть серьезными. Поскольку многие пользователи имеют тенденцию щелкать без разбора без фактического просмотра, не говоря уже о понимании того, с чем их запрашивают, они отключили возможность закрывать диалоговое окно UAC только Y или N и вынуждают менее удобный метод удерживать Alt для сделай это.

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

технический

Кроме того, есть еще одна более техническая причина. Подсказка UAC не является обычным окном и не обрабатывается обычным оконным менеджером. Обратите внимание, что даже при включенном Aero Glass в диалоговом окне UAC отображается Aero Basic (рисунок 3).

Также обратите внимание, что вы не можете сделать его снимок экрана (или экран в целом) с помощью клавиши PrtScr (подобные снимки экрана обычно делаются с виртуальными машинами). Фактически, вы не можете использовать Alt/Win+Tab, Win, Ctrl+Esc или даже Ctrl+Shift+Escape или любую другую горячую клавишу Explorer/приложения, когда приглашение UAC активно; работают только горячие клавиши, которые обрабатываются CSRSS:

  • Win+P
  • Win+L
  • Win+U
  • Ctrl+Alt+Del

В более старых версиях Windows (например, Windows 3) существовала концепция системно-модального диалогового окна. То есть тип диалогового окна, которое при отображении полностью блокирует работу остальной системы до тех пор, пока оно не будет закрыто. Это имело некоторый смысл для определенных вещей, таких как критические предупреждения, но, очевидно, оно имеет серьезные последствия и, что еще хуже, им можно злоупотреблять. Неудивительно, что в Windows 95 они удалили системный модальный стиль, изменив его так, чтобы вместо блокировки системы он просто делал диалог верхним (всегда поверх всех остальных не верхних окон). (Технически, системно-модальный диалог был невозможен в 9x в любом случае из-за того, что он был многозадачным, вместо совместной многозадачности, как 3.x). Подсказка UAC является наиболее близкой к системно-модальному диалогу в современных системах Windows, но даже в том, что она является своего рода хаком, аналогичным, но более мощным, чем экран выключения замирания XP (рисунок 4).

Поскольку приглашение UAC предназначено для модальной системы, оно обрабатывается не диспетчером окон (который не способен это сделать), а скорее системами более низкого уровня. Из-за этого он должен обрабатывать ускорители сам по себе, а не просто оболочке, поэтому некоторая обработка акселератора (включая нажатие только клавиши ускорения без удерживания Alt) не работает точно так же, как в Explorer и других программах. ,

Безопасность + Технические

На самом деле для этого есть причина, которая заключается в сочетании как технических, так и технических соображений. В безопасном входе в систему Windows NT (рисунок 5) система может быть настроена так, чтобы пользователь нажимал Ctrl+Alt+Delete для входа в систему:

Windows NT спроектирована таким образом, что, если безопасность системы уже не была нарушена каким-либо другим способом, только процесс Winlogon, доверенный системный процесс, может получать уведомления об этой комбинации нажатий клавиш. Это связано с тем, что ядро запоминает идентификатор процесса Winlogon и позволяет только этому процессу получать уведомление. Таким образом, эта комбинация нажатий клавиш называется последовательностью безопасного внимания. Пользователь, нажимающий Control-Alt-Delete, может быть уверен, что это операционная система (в частности, процесс Winlogon), а не сторонняя программа, которая отвечает на комбинацию клавиш (т. Е. Подмена входа в систему), и поэтому она безопасна. ввести пароль.

Безопасность в Windows часто обрабатывается особым образом, поскольку низкоуровневые процессы с высокими привилегиями обрабатывают специальные ключи для предотвращения подделки. Таким образом, например, более сложно разрешить программе программно отправлять ключ (ы) Да, чтобы обойти пользователя. Аналогичным образом, веб-браузеры ограничивают возможности ввода данных для предотвращения мошеннических кликов, автоматических атак и т.д., Поэтому неудивительно, что наиболее чувствительный экран безопасности Windows делает запрос на запуск процесса с правами администратора немного более сложным. ,

Резюме

Был ли это дизайн безопасности или технические ограничения, которые были первыми (ошибки или функции), неизвестно; вам придется попросить команду разработчиков Windows выяснить это (при условии, что они смогут / захотят ответить). В любом случае, для этого есть две причины, и они обе соответствуют потребностям друг друга.


аппендикс

Рисунок 1: Диалог отказа от повторной попытки

Рисунок 2: Диалог копирования файла

Рисунок 3: Запрос UAC в Aero Basic через рабочий стол Aero Glass

Рисунок 4: Экран отключения затухания в Windows XP

Рисунок 5: Экран безопасного входа в Windows 7

4

Я обнаружил, что должен нажать Alt+y, чтобы активировать кнопку Yes в приглашении UAC. Это может работать для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .