Pull to refresh

Почему консоль Windows не использует тем оформления

Reading time 2 min
Views 724
Не думаю, что это интересно всем и каждому, просто любопытная деталь.
Наверняка вы не раз, и не два использовали CMD. Я более чем уверен, что вы обращали внимание на неоформленность окна консоли. Это тем более бросается в глаза, когда переходишь на Висту — в ней заголовок окна использует текущую тему. В чем же дело?

Ок, идем на сайт MS — http://support.microsoft.com/kb/306509. Если кто не отваживается кликать на ссылки, содержащие microsoft.com, привожу текст со страницы поддержки с собственным переводом:
«Окно командной строки запущено под Client Server Runtime System, которая не может быть оформлена».

Прямо скажем, все яснее ясного. Прям настолько ясно, что я не удержался и стал искать дальше. Довольно быстро выяснилось, что я не один такой умный и вопрос уже всплывал на блоге Реймонда Чена. Кстати, интересный и известный товарищ, вообще интересно пишет.

Чен пишет, что CSRSS — штука критически важная. Пнешь — может и развалиться, а за собой утащить и всю систему. То есть понятно, что лишние навороты ей ни к чему. Команда разработчиков CSRSS решила, что им не хочется рисковать, позволяя менеджеру тем выполнять свой код под их процессом. С другой стороны, оформлять командную строку не позволяет сама архитектура — CSRSS работает как отдельная подсистема и менеджер оформления просто не может получить к ней доступ.

Так что же с Вистой? И в Висте, пишет Чен, CSRSS не оформлена. Оформлена рамка окна, но не консоль. Присмотритесь — полоса прокрутки по-прежнему выполнена в классическом стиле.
Рамку окрашивает менеджер окон и, по его же вине, мы не можем теперь перетаскивать файлы в окно консоли. По соображениям безопасности, в Висте мы не можем передавать сообщения из одного сервиса в другой, более высокого уровня. CSRSS запущен с очень высоким уровнем безопасности и не позволяет случайному процессу (такому как Эксплорер), передавать свои сообщения, которые используются при drag and drop.
Tags:
Hubs:
+45
Comments 72
Comments Comments 72

Articles