Я использовал сочетания клавиш для некоторых папок в Windows 7. В последнее время я начал использовать Windows 8, а теперь и Windows 8.1.

Кажется, есть проблема с сочетаниями клавиш в папке C:\Users\username\Links . Я назначаю ярлык, но он не будет работать. Любой другой ярлык для любой папки, однако, работает просто отлично. Я не могу использовать сочетания клавиш только для тех, в папке Links .

Как исправить эту проблему?

редактировать

Я попытался несколько обходных путей, но они не сработали:

Я вырезал ярлык из папки Links, вставил его на рабочий стол. То же сочетание клавиш не работает. Я изменил сочетание клавиш на что-то другое (кстати, я уверен, что сочетания клавиш не назначены для чего-то еще), и оно работало с другим сочетанием клавиш. Я переместил его обратно в папку ссылок, он не работал. Я опять поменял ярлык на что то другое. Я думал, что на этот раз это сработает, но хотя ярлык был перемещен обратно в папку «Ссылки» и переназначен другой ярлык на клавиатуре, он не сработал.

4 ответа4

2

тесты

Замена ярлыка

Я провел несколько тестов и получил интересные и очень интересные результаты. Я провел тест в Windows ME (это была самая ранняя версия Windows, на которой у меня была запущенная копия), и повторил ее с XP, а затем с 7. Это то, что я сделал, и вы можете повторить:

  1. Создайте ярлык калькулятора на рабочем столе, назовите его C и назначьте ему неиспользуемую горячую клавишу
  2. Проверьте, что горячая клавиша работает
  3. Создайте ярлык для «Блокнота» в папке « Links », назовите его « N и назначьте ему другую, неиспользуемую горячую клавишу
  4. Подтвердите, что горячая клавиша не работает
  5. Удалить ярлык на калькулятор с рабочего стола
  6. Переместите ярлык «Блокнот» из папки « Link » на рабочий стол и переименуйте его в « C
  7. Нажмите горячую клавишу, которая была назначена исходному ярлыку для калькулятора
  8. Обратите внимание, что работает Блокнот

Это происходит в Windows ME и XP, но в Windows 7 нажатие любой горячей клавиши ничего не делало в конце.

Внутренний формат горячих клавиш

Исходя из этого, мы можем предположить, что когда вы назначаете горячую клавишу ярлыку, он назначает полный путь к ярлыку. Например, в приведенном выше тесте установка горячей клавиши Alt+⇧Shift+C на ярлык калькулятора приведет к тому, что Windows зарегистрирует что-то подобное внутри:

C A S W K P
- + + - C "C:\…\Foobar\Desktop\C.lnk"

Поэтому, если вы удалите (или переместите или переименуете) ярлык, нажатие клавиши попытается запустить ярлык, который не существует. Любопытно, что если вы отслеживаете доступ к файлам в Process Explorer, вы не увидите ошибок FILE NOT FOUND при попытке доступа к отсутствующему ярлыку, но если вы восстановите ярлык, вы увидите, что к нему снова обращаются, когда вы нажимаете горячую клавишу.

Автоматическое управление горячими клавишами

Кроме того, тот факт, что Windows 7 не запускает скопированные ярлыки, по-видимому, указывает на то, что Explorer выполняет какое-то управление горячими клавишами при перемещении, переименовании или удалении ярлыков, но, конечно, существуют ограничения в отношении того, что он может делать. (Например, если два ярлыка совместно используют горячую клавишу, удаление того, у которого есть горячая клавиша, не приведет к внезапному переназначению горячей клавиши другому, вам нужно вручную открыть диалоговое окно свойств этого ярлыка и нажать [OK] чтобы сделать это.)

Перенаправление папки ссылок

Затем я подумал о перенаправлении папки « Links » (рисунок 1). Я попытался перенаправить его, затем скопировал перемещенную папку обратно в исходное местоположение. Я обнаружил, что горячие клавиши не работают для ярлыков в любой папке. Затем я попытался удалить атрибуты из папок и даже удалить из них файлы desktop.ini предполагая, что Windows обрабатывает их специально, но это не помогло. Затем я создал новую обычную папку в папке пользовательских данных, и, к моему удивлению, горячие клавиши все равно не сработали.

Горячие клавиши быстрого доступа вокруг файловой системы

Далее я попробовал его с помощью ярлыка на другом диске, и все равно ничего. Я попытался назначить горячие клавиши для ярлыков в нескольких разных местах в Windows 7, и только горячие клавиши, которые были в папках Desktop или в Start Menu или в одном из их подкаталогов, могли использовать горячие клавиши.

Выводы

Кажется, что функция горячих клавиш в Explorer крайне ограничена и работает только для меню «Пуск» и рабочего стола. Я не знаю, является ли это ошибкой или предназначено, потому что я не могу найти никакого упоминания об ограничении. На собственной странице Microsoft по этому вопросу ничего не сказано. (Дайте им знать через форму обратной связи. Я нажал [No] и отправил ссылку на эту страницу.) Нет оснований полагать, что это отличается в Windows 8 или 8.1 или, возможно, даже в будущих версиях (при условии, что они вообще сохраняют Explorer).

рекомендации

Вы можете (попытаться) сообщить об этом, но я бы не стал надеяться, что это будет исправлено. Было бы быстрее и проще хранить ярлыки, для которых нужны горячие клавиши, в другой папке.


Рисунок 1: Настройка расположения ссылок:

Снимок экрана: диалог размещения ссылок

1

Я недавно задал похожий вопрос, и я выяснил ответ, так что я думаю, что я отвечу здесь. Мой вопрос был больше о внутренней функции управления горячими клавишами Windows и о том, что и как. Можете ли вы добавить папки в список? Существуют ли менее известные папки, в которые вы можете поместить ярлыки с помощью горячих клавиш? В итоге я только подтвердил то, что уже было известно, но вот как я это сделал.

Моя первая попытка выяснить это была проверка следов Procmon файла explorer.exe . Procmon - это утилита, которая отслеживает доступ к файлам и реестру, и я пришел к выводу, что процесс, похоже, не ищет никаких дополнительных путей в реестре.

Не полностью удовлетворенный, я вспомнил, что около 10 лет назад произошла утечка исходного кода Windows 2000. Я отследил это и посмотрел на логику в этом коде. Оказывается, горячие клавиши для ярлыков управляются в двух местах.

  1. При изменении свойств ярлыка. При нажатии кнопки «ОК» или «Применить» в диалоговом окне свойств для ярлыка Windows проверяет, является ли папка ярлыка или является подпапкой фиксированного списка папок. Это список CSIDL_PROGRAMS , CSIDL_COMMON_PROGRAMS , CSIDL_STARTMENU , CSIDL_COMMON_STARTMENU , CSIDL_DESKTOPDIRECTORY , CSIDL_COMMON_DESKTOPDIRECTORY как указано в нотации CSIDL. (Каждый элемент CSIDL в конечном итоге проверяется на соответствие значению реестра, если, возможно, где-то не кэширован. Я не смотрел детали реализации этого.) Если ярлык находится в одном из этих мест, горячая клавиша регистрируется, и, если применимо, старая горячая клавиша стирается.
  2. Когда запускается explorer.exe . В другой части кода все элементы меню «Пуск», а также все элементы рабочего стола перечислены при первом запуске процесса explorer.exe . Перечисление этих двух разных путей выполняется в разных функциях. Функция перечисления элементов в папке меню «Пуск» является рекурсивной, и эта функция также обрабатывает кэширование значков. Функция перечисления элементов на рабочем столе не является рекурсивной, а только проверяет саму папку рабочего стола.

Не делается никаких попыток обработать перемещение или удаление ярлыка.

Это объясняет некоторые странные поведения, такие как следующее:

  • Когда вы перемещаете или удаляете ярлык из допустимого местоположения, горячая клавиша остается в памяти, и нажатие на нее слепо пытается запустить уже не существующий ярлык. (Пока действует текущий процесс explorer.exe .)
  • Аналогичным образом, если вы переместите ярлык с горячей клавишей в допустимую папку, это не будет обнаружено до следующего сеанса или до изменения свойств ярлыка.
  • Если вы создадите ярлык в подпапке на рабочем столе, он будет работать для текущего сеанса explorer.exe , так как нажатие OK/ применить добавляет горячую клавишу в соответствии с механизмом 1 выше. Однако в следующем сеансе эта горячая клавиша не будет добавлена, поскольку ярлык находится в подпапке, в которую explorer.exe не попадает при первом запуске процесса.

В конце концов, я в основном подтвердил то, что было известно, но приятно знать, почему.

0

У меня обычно есть сочетания клавиш для Excel, Outlook, Word и калькулятора. Но в Windows 7 и Windows 8.1, как указывалось в предыдущих статьях, ярлыки не работают. Однако я нашел "заднюю дверь", и мои ярлыки теперь работают нормально.

Хитрость заключается в создании ярлыков с использованием файлов .lnk расположенных в "Меню Пуск", скрытых в Windows 7/8.1. Вы можете найти их по адресу:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

Оказавшись там, просто перейдите по ссылке на вашу программу, щелкните ее правой кнопкой мыши и измените свойства, как и раньше.

0

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

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

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