Есть ли тайм-аут для разрешения ярлыков Windows для исполняемых файлов?

Если щелкнуть правой кнопкой мыши или нажать Alt+Enter на ярлыке, Windows обычно сразу отображает контекстное меню или диалоговое окно " Свойства ", даже если ярлык не работает и указывает на файл или каталог, который больше не существует.

Я видел это занять некоторое время для сломанных ярлыков .exe файлы, в которых Windows тратит несколько секунд (в данном случае 15), по-видимому, пытаясь разрешить ярлык, прежде чем он наконец покажет контекстное меню или диалоговое окно " Свойства ". Даже удаление файлов ждет 15 секунд, прежде чем отобразится запрос на удаление. Копирование или перемещение их не вызывает задержки.

Я подумал, что, возможно, это может быть параметр, связанный с сетью, но, похоже, он применяется к каждому (неработающему) ярлыку независимо от того, куда он указывает. Я просмотрел TweakUI и ничего не нашел. I looked through the registry for 15,000 (and 0x3A98) and found none that applied as well as 15 (and 0x0f), which had many hits, but none that were responsible for this.

Is there a setting that determines the timeout for resolving shortcuts?

1 ответ

Решение

Оказалось, что в данном случае это была оболочка-расширение.

Во-первых, я заметил, что при щелчке правой кнопкой мыши по сломанному ярлыку Explorer пытался открыть исполняемый файл, на который он указывал, раз в секунду в течение 15 секунд, прежде чем сдаться.

Затем я наблюдал за всеми записями реестра, к которым обращались при нажатии правой кнопкой мыши по ярлыку, и просматривал каждый из них. HKCR\.lnk , HKCR\lnkfile , HKCR\.exe , а также HKCR\exefile проверяя каждого на что-нибудь необычное.

  1. Я открыл редактор реестра и отключил все exefile расширения (добавляя "#" к началу каждого CLSID)
  2. Я обнаружил, что щелчок правой кнопкой мыши был немедленным. Замечательно!
  3. Затем я включил каждое расширение, удалив символ "#", каждый раз щелкая правой кнопкой мыши по сломанному ярлыку.

Вуаля! Расширение было нарушено {F0407C3D-349C-42B9-B83E-821E31623DF9} что соответствует CmdLineExt, который звучит достаточно невинно (уже есть расширение, открывающее приглашение командной строки в любой папке), но это не так. Это коварное и явно ошибочное расширение фактически является контекстным меню SecuROM для Explorer от Sony DADC Austria AG , и кажется, что это расширение - не что иное, как проблема .

Я не уверен, как или когда он был установлен (вероятно, часть программного обеспечения), но Sony известна своими "руткитами" .


Во всяком случае, из того, что я могу сказать, Windows не имеет задержки для разрешения ярлыков; он немедленно обнаруживает неисправные ярлыки и ест ошибку (использует значения по умолчанию).

Другие вопросы по тегам