Читаем Хитрости Windows 7. Для профессионалов - 2011 полностью

Приложение, которое прописывает параметр в реестре, учитывает его тип и назначение. Не существует четких правил, ограничивающих выбор типа или имени параметра. Программист для сохранения собственных рекордов в какой-нибудь игре может выбрать двоичную переменную и дать ей название High Scores или использовать строковую переменную с названием Lard Lad Donuts. Все, что вам нужно сделать в роли «хакера» реестра, — это использовать значения в таком формате, в котором их ожидает получить конкретное приложение.

Нужно обратить внимание на то, что строковое значение «по умолчанию», которое появляется вверху каждого раздела, является наследием ранних версий Windows, когда каждый раздел мог иметь только одно значение. Значение «по умолчанию» не может быть ни перемещено, ни переименовано, хотя его содержание может быть изменено. Пустое значение «по умолчанию» эквивалентно означает, что значение не присвоено.

КОГДА ЧИСЛО - ЭТО НЕ только число

Иногда числа, хранящиеся в DWORD, состоят из нескольких частей, связанных логической арифметикой.

DWORD — «двойное слово», то есть оно гложет содержать два 16-битных значения. 16-битное значение — это целое число, хранящееся в 16 битах, что означает, оно не может быть больше, чем 2‘6, или 65 536. Таким образом, значение DWORD может использоваться для хранения двух таких чисел или одного 32-битного числа (не больше 232 или 4 294 967 296) или даже тридцати двух 1-битных двоичных чисел (каждое из которых может принимать значение 1 или 0).

Система Windows 7 поддерживает и 64-битное значение QWORD, которое доступно даже при использовании 32-битной версии. 64-битный QWORD — это учетверенный WORD, который равен двум DWORD и может содержать шестьдесят четыре 1-битных значения, четыре 16-битных значения, два 32-битных или одно 64-битное значение (которое может быть до 2W, или 18 446 774 073 709 600 000).

Может быть, у вас сейчас возник вопрос, как же это знание может помочь в жизни.

Но оно и не может помочь. Фактически оно, возможно, только все ухудшит. Но оно будет бесценно, если вы наткнетесь на значение DWORD, которое составлено из более мелких компонентов. Например, вы зеркально отображаете переключатель в каком-либо приложении и видите, что значение DWORD меняется с 16 на 8. Вы обнаружили то, что вышеуказанный переключатель хранится в этом значении как 4-битный (первый — 1, второй — 2, третий — 4). (Если это непонятно, то посмотрите в Википедии «Двоичная система исчисления» для того, чтобы разобраться в этом понятии.)

Чтобы вас еще больше запутать, есть еще одна разновидность значения DWORD — BIGENDIAN (REG_DWORD_BIGENDIAN). Это практически то же самое, что и обычный 32-битный DWORD, за исключением того, что два 16-битных слова хранятся в противоположном порядке (большее слово идет первым). Такое случается редко. Но у вас могут быть неприятности, если вы замените одно из слов обычным значением DWORD.

Системный реестр в 64-битной версии Windows

Проблема в том, что 64-битное программное обеспечение с трудом удается совместить с 32-битным; это вызывает необходимость существования двух реестров, чтобы эти биты находились подальше друг от друга. Поскольку иметь два независимых реестра непрактично, разделяются лишь некоторые разделы и ветви. Сопоставления типов файлов, например, общие для обоих слоев2, поэтому вы можете один раз связать .txt-документы с любимым текстовым редактором, и эти связи будут работать и в 32-битной, и в 64-битной версиях Windows.

Но в то же время 64-битная программа не может обратиться к 32-битной DLL. Часть реестра, управляющая DLL и другими компонентами, будет для каждого слоя Windows отдельной. Таким образом, например, 64-битные версии Проводника и Internet Explorer недоступны для 32-битных DLL, и наоборот.

#*V Из-за такого разделения классов программного обеспечения приходится запускать

32-битную версию Проводника, если вы хотите использовать дополнения кон-j £ текстного меню, или вы будете вынуждены использовать только родные 64-битные *■' дополнения контекстного меню для работы с 64-битной версией Проводника,

Как правило, такой раздвоенный дизайн не требует от вас дополнительных усилий. Каждое из 32-битных приложений видит только те разделы реестра, которые оно должно видеть, а все 64-битные приложения видят только 64-битный реестр. Дополнительные усилия понадобятся только в тех случаях, когда двойственность реестра становится помехой для ежедневного неавторизованного доступа или вас начинают раздражать надоедливые предупреждения.

Редактор реестра включает специальную ветвь Wow6432Node, позволяющую получить доступ к 32-битным записям из того же окна, что и к 64-битным. В Windows 7 по умолчанию существует три таких «узла»:

НК EY_C LASS ES_ROOT\Wow6432Node3

HKEY_CURRENT_USER\Software\Wow6432Node

HKEY_L0CAL_MACHINE\S0FTWARE\Wow6432Node

Перейти на страницу:

Похожие книги

C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных
Секреты приложений Google
Секреты приложений Google

Даже продвинутые пользователи Интернета не подозревают о тех огромных возможностях, которые предоставляют сервисы Google. Автор рассказывает о таких «секретах» сервисов, которые просто немедленно хочется использовать! Создавать сайты и презентации, бродить по улочкам Парижа, изучать звездное небо – все это доступно каждому, кто сидит у экрана монитора и имеет доступ в Интернет. Книга научит вас работать с веб-приложениями и тысячекратно увеличить свои возможности с помощью новейших технологий. Она написана легким, доступным языком и не требует от читателя наличия каких-либо специальных знаний. Книга содержит множество примеров, иллюстраций и будет полезна всем, кто не стоит на месте и стремится сделать свою жизнь более насыщенной и интересной.

Денис Балуев , Денис Игоревич Балуев

Программирование, программы, базы данных / Интернет / Программное обеспечение / Книги по IT