newIETitle.SetValue(«Window Title», Title);
newIETitle.Close();
}
private void butChangeTitleIE_Click(object sender, EventArgs e)
{
ChangeIETitle(«Мой суперзаголовок»);
MessageBox.Show(«Закройте IE и запустите его снова»);
}
Рис. 5.19.Internet Explorer с новым заголовком
После повторного запуска браузера вы увидите, что в заголовке окна теперь отображается установленная вами строка, в моем случае выводится строка Мой суперзаголовок(рис. 5.19).
Виртуализация
В предыдущем примере мы записали новое значение реестра в раздел HKEY_CURRENT_USER. Эта разрешенная область для записи новых значений. А что произойдет, если мы попытаемся записать новое значение в раздел HKEY_LOCAL_MACHINE? В Windows 7 запрещено записывать в данный раздел обычным пользователям и стандартным программам. Давайте напишем простой пример для проверки данного запрета:
private void AddNewValue()
{
RegistryKey myKey = Registry.LocalMachine.CreateSubKey(
«SOFTWARE\\Test\\Preferences»,
RegistryKeyPermissionCheck.Default);
try
{
myKey.SetValue(«MyKey», «MyValue»);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
myKey.Close();
} }
private void butVirtualization_Click(object sender, EventArgs e)
{
AddNewValue();
MessageBox.Show(«Новые значения добавлены в реестр»);
}
Если вы запустите пример, то получите сообщение об ошибке. Здесь сработал режим UAC, который вызвал столько недовольных разговоров при выпуске Windows Vista. Большинство пользователей привыкло работать под правами Администратора, что наносило большой вред безопасности системы. Microsoft решила как-то бороться с данным явлением и предложила новую модель UAC, которая получила дальнейшее развитие и в Windows 7. Теперь при попытке обращения к запрещенным областям системы на экране появляется предупреждающее сообщение (рис. 5.20).
Рис. 5.20.Сообщение об ошибке при попытке записи в реестр
На этом оборона системы не заканчивается. Давайте временно отключим контроль UAC, чтобы все-таки сделать запись в выбранном разделе, тем более что многие пользователи так и делают (и совершенно зря). Чтобы не подвергать свой компьютер опасности, мы отключим контроль UAC по-умному. Зайдите в меню Project | Project Properties…и на вкладке Applicationв области Resourcesустановите у выпадающего списка Manifest значение Create applications without a manifest.Запустите программу снова, и вы уже не получите сообщение об ошибке. Казалось бы, мы решили свою проблему. Но не торопитесь с выводами. Запустите редактор реестра и попробуйте найти раздел Test в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Test. Как ни странно, вы не найдете там вашего раздела. Но почему же программа нормально отработала и не сообщила об ошибке. Все очень просто. На этот раз сработала новая технология Microsoft – виртуализация. Я не стану подробнее останавливаться на этой теме (интересующиеся могут найти документацию самостоятельно), скажу только, что при попытке записать в запрещенную область реестра при отключенным UAC, ваши записи попадают в раздел HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE. Интересно отметить, что программа при этом уверена, что запись производится в нужный раздел. Но на самом деле вы не должны прибегать к подобному трюку. Дело в том, что виртуализация была предложена на переходный период в целях совместимости. Разработчики должны пересмотреть свои программные продукты и внести необходимые изменения. В дальнейшем Microsoft планирует отказаться от виртуализации и заставить программистов писать безопасный код, который не будет наносить вред системе пользователя.
...
ПРИМЕЧАНИЕ: ДОПОЛНИТЕЛЬНЫЕ ФАЙЛЫ
В папке Ch5 вы можете найти файл ChangeIETitle zip, который содержит примеры о смене заголовка окна браузера и виртуализации.
Заключение и благодарности
Мне хотелось бы выразить горячую признательность всем людям, которые писали мне письма с вопросами о реестре. Частенько бывало так, что в поисках ответа на ваши вопросы, я сам узнавал про новые параметры в нем. Иногда некоторые авторы писем сами присылали мне описания параметров для ознакомления. Всем спасибо – вы помогли мне написать книгу.
Хочу выразить благодарность моему брату Геннадию Климову, который постоянно держит меня в курсе всех новинок в области информационных технологий, а также за его участие в переходе с Windows Vista на Windows 7, благодаря чему я смог написать книгу.
Читать дальше
Конец ознакомительного отрывка
Купить книгу