Как "сломать" кнопку "Пуск"

Итак, вы считаете себя профи-пользователем Windows 95. Вы поражаете своих друзей и знакомых умными фразами про реестр и рассуждениями о тонкостях настройки Windows 95. А хотите поразить окружающих еще больше? Если да, то попробуйте изменить надпись на кнопке Пуск, написав на ней, скажем, слово "Меню" или, может быть, свое имя! Что тут изменять, скажете вы, - открыл файл в HEX редакторе, сделал поиск слова "Пуск" и исправил! На самом же деле все не так просто, как кажется! Вся проблема заключается в том, что текстовые сообщения в Windows-программах, также как и длинные имена файлов и каталогов, хранятся в Unicode-формате. Это 16-разрядная схема кодировки символов, в отличии от однобайтного стандарта Windows ANSI (256 символов - 2 в 8-й степени), позволяет представить 65536 (то есть 2 в 16-й степени) символов. Возможного количества уникальных кодов хватит с лихвой для кодировки букв всех современных, а также нескольких старых и мертвых языков. Эта система позволяет решить проблему множественности кодирования букв и переносимости файлов из одной локализованной (то есть переведенной на какой-либо язык) ОС в другую, поддерживая любые национальные алфавиты. Несмотря на автоматически привносимую Windows популярность, эту кодировку не поддерживает ни один из известных мне шестнадцатеричных редакторов, в том числе и многомегабайтный HEX Workshop. Даже если бы и поддерживал, то без специальных настроек или локализации оного редактора вы бы все равно ничего не увидели. С этой же проблемой, кстати, сталкиваются и программы, позволяющие изменять надпись кнопки Start, например, WinHacker, работающий корректно только в англоязычной версии Windows 95. Единственной известной мне утилитой, позволяющей корректно просматривать (но, к сожалению, не редактировать) Unicode-строки является Peek. Эта утилита добавляет в контекстное меню всех файлов свои пункты, позволяющие "выдирать" из файлов всю текстовую информацию. Программа создает текстовый документ, содержащий все текстовые строки с указанием адресов, где они расположены. Причем, для корректной ее работы с русскими unicoded-символами их (русские заглавные и прописные буквы) необходимо предварительно добавить в список распознаваемых программой символов в реестре в разделе HKEY_LOCAL_MACHINE\ SOFTWARE\Aries\Peek\ Unicode\Character Set. Впрочем, необходимость в этой утилите при редактировании кнопки Пуск отпадет, если вы дочитаете статью до конца.

Итак, как же все-таки изменить надпись главной кнопки Windows 95.

Во-первых, необходимо сделать резервную копию редактируемого файла, то бишь explorer.exe из директории Windows 95. Зачем? А вдруг не получится, вдруг вы ошибетесь или неправильно поймете меня? Не переустанавливать же из-за этого Windows! После резервирования, перед началом редактирования, необходимо перезагрузиться в режиме эмуляции MS-DOS либо просто перезагрузить машину в command prompt режиме и набрать в командной строке Lock. На вопрос о включении режима прямого доступа к диску необходимо ответить Yes, после чего можно запустить любой шестнадцатеричный редактор, например, Hiew или Disk Edit из Нортоновских утилит, либо воспользоваться встроенным в DOS Navigator HEX-редактором. Учитывая популярность последнего, буду объяснять процесс редактирования на его примере.

Итак, вы открыли файл по клавише F3, а затем по F4 вызвали режим HEX-редактирования (однократное нажатие, не путать с Dump'ом). Нажмите F5 (перейти) и введите адрес 2D43C для русской версии Windows 95 или 2DF0C для английской. Справа вверху в текстовой части редактора появится строка приблизительно такого содержания: (.%.1.). За этой строкой будет стоять еще несколько символов и точек, после которых и идет искомая нами строка Пуск или Start. Правда, надпись Пуск вы не увидите, однако если у вас англоязычная версия Windows 95, то, чуть-чуть приглядевшись, вы увидите нужную надпись - она будет выглядеть как: S.t.a.r.t. Да, именно так! Дальнейшее изменение надписи в данном случае представляется очевидным. Просто замените соответствующие имеющиеся буквы (переход в текстовую часть производится клавишей Tab) на любые другие (но только английские). При этом следует сохранять надпись в существующих текстовых границах, а также сохранять общее количество выводимых на кнопке букв - то есть пять. Нужно также отметить, что символы, представляемые в редакторе точками (код 00), на самом деле ими, то есть символами известного знака препинания, не являются, и их присутствие между буквами обязательно. Кстати, вы при желании можете поставить между буквами и пробел или применить его, если вы не использовали все пять букв и хотите затереть старые буквы, чтобы они не показывались на кнопке. При этом опять-таки нельзя забывать про символы "точек". Это что касается английского варианта explorer'a. С русским все гораздо сложней по той причине, что реально выводимые на кнопке буквы не видны в редакторе. Буквы "П", "у", "с" и "к"расположены по следующим адресам и имеют следующие коды: П - 2D43C, код 1F, у - 2D43E, код 43, с - 2D440, код 41, к - 2D442 c кодом 3A. Собственно говоря, ограничения по редактированию здесь те же, что и с английской версией, только в данном случае букв должно быть четыре и они должны быть разделены ромбиком (символ с кодом 04). Вообще-то на самом деле говорить, что буквы отделяются ромбиком, не очень-то верно по той простой причине, что код символа ромба является составной частью кода каждой русской Unicoded-буквы, впрочем, как и "точки" в английских символах. Кстати, именно поэтому при смешении букв английского и русского языков постарайтесь не запутаться с соответствующими "разделителями". Исключением не является и символ пробела (код 20 00, а не 20 04), как бы относимый к английскому регистру. Возможные мотивы и ограничения установки знака пробела совпадают при редактировании надписей кнопок обеих версий Windows 95. В нашем примере с переделыванием надписи Пуск на Меню последовательность новых кодов будет выглядеть следующим образом: 1C 04 35 04 3D 04 4E 04.

Описанным методом можно изменить не только надпись на кнопке Пуск, но и подсказку "Нажмите работу с нажатия этой кнопки", появляющуюся над кнопкой или выезжающую при загрузке Windows 95 (адреса 2CEA4 и 2D31B), а также многое-многое другое.

 

Кстати, редактирование надписи кнопки может принести и некоторую пользу. Например, если заменить все буквы Пуск или Start на символы с кодом 00 (опять-таки не путать с обычной точкой), в том числе и бывшие "ромбики-разделители" с кодом 04 (в англоязычной версии в этом нет необходимости), то вы, убрав надпись на бывшей кнопке Пуск, тем самым уменьшите ее размер приблизительно в три раза. Соответственно у вас появится чуть больше места на панели задач, то есть больше кнопок программ сможет там поместиться и тем медленней будет происходить уменьшение их размеров по мере роста их количества. Звучит запутанно, однако, когда вы откроете одновременно больше десятка окон, вы почувствуете разницу.

Напоследок, для удобства редактирования, приведу Unicode-таблицу русских букв.

А - 10 Б - 11 В - 12 Г - 13 Д - 14 Е - 15 Ж - 16 З - 17 И - 18 Й - 19 К - 1A Л - 1B М - 1C Н - 1D О - 1E П - 1F
Р - 20 С - 21 Т - 22 У - 23 Ф - 24 Х - 25 Ц - 26 Ч - 27 Ш - 28 Щ - 29 Ъ - 2A Ы - 2B Ь - 2C Э - 2D Ю - 2E Я - 2F
а - 30 б - 31 в - 32 г - 33 д - 34 е - 35 ж - 36 з - 37 и - 38 й - 39 к - 3A л - 3B м - 3C н - 3D о - 3E п - 3F
р - 40 с - 41 т - 42 у - 43 ф - 44 х - 45 ц - 46 ч - 47 ш - 48 щ - 49 ъ - 4A ы - 4B ь - 4C э - 4D ю - 4E я - 4F

Кирилл ВОЛОШИН,
www.chat.ru/~kira_v

Версия для печатиВерсия для печати

Номер: 

03 за 1998 год

Рубрика: 

Пользователь - пользователю
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!