Что на самом деле означают эти загадочные строки в ассоциациях реестра?

9

Глядя на мое значение HKEY_CLASSES_ROOT \ Word.Document.12 \ shell \ Open \ command \ command (ассоциация оболочки Word 2010 «Открыть»), я вижу такую ​​ерунду:

xb'BV5 !!!!!!!!! MKKSkWORDFiles> bi $ T! V! 0Z = {Pk0vm ~ AZu / n "% 1"

где все ясно о последних / n "% 1" частях, но первая загадочная часть, очевидно, обозначает некоторую магическую инструкцию по запуску MS Word. То же самое у меня есть вуду для Excel и других ассоциаций Office.

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

Однако, что я действительно не понял, так это тот факт, что никто (кого я, конечно, замечаю в Интернете) никогда не спрашивал что-то вроде: «Как на земле это работает? или "что это на самом деле значит?" или, по крайней мере, не последнее, «как вы думаете, у меня есть противный вирус ?!». Хорошо, тогда я собираюсь быть первым, я думаю.

Мой вопрос здесь не в том, почему люди такие любопытные. Мой вопрос: как эти строки действительно работают в ассоциациях реестра? Это должна быть какая-то недокументированная (или документированная) функция Windows (предположительно, Windows Shell), преобразующая такие строки во что-то усваиваемое человеком.

Ван джон
источник

Ответы:

6

Вы имеете дело с проблемой « Недокументированное API ».

Эта строка является секретной, специфичной для реализации строкой, которую Microsoft не хочет публиковать. Если формат строки был общедоступным, и Microsoft когда-либо хотела изменить способ загрузки файлов, им все равно нужно было бы поддерживать старую строку для обратной совместимости, если это недокументированный API, им разрешено изменять ее, не проходя через проверку если сторонний материал сломается.

Microsoft на самом деле является одной из лучших компаний, когда дело доходит до того, чтобы быть осторожными, чтобы не взломать стороннее программное обеспечение, а запуск команды word run - это лишь одно из тех мест, где они не хотят преодолевать проблемы.

Скотт Чемберлен
источник
1
К сожалению, этот ответ касается совершенно других вопросов: а) Что означает «недокументированный API»? б) Почему недокументированные API существуют вообще? в) Какая компания защищает нашу жизнь лучше, чтобы мы, тупые пользователи, не стреляли в нашу собственную ногу? :-) Еще очень далеко, чтобы ответить " как эти строки действительно работают в ассоциациях реестра?" Если бы я был готов принять строку «Я просто не должен знать», я бы не стал спрашивать это здесь, в SuperUser ...
Ван Джоне
1
@VanJone. Эту вещь никто не знает, никто не потратил время на то, чтобы перепроектировать программу и выяснить это, особенно когда следующее обновление Windows может сделать то, что они больше не работают.
Скотт Чемберлен
1
Люди часто меняют Windows, и многие могут обладать этими знаниями как побочным эффектом получения заработной платы. Это просто вопрос удачи, как долго ждать, пока кто-то с нужными знаниями появится здесь.
Ван Джоне
PS '@' нотация не работает для меня по какой-то причине: SU просто удалил ее из моего комментария
Van Jone
@VanJone Вам не нужно использовать @, когда вы отвечаете автору сообщения, они автоматически получат уведомление, @ предназначено для изменения уведомления от автора сообщения на того, кто хотя бы один раз разместил его в комментариях.
Скотт Чемберлен