Недокументированные и малоизвестные возможности Windows XP
Шрифт:
SendKeys
Работа этого метода довольно интересна. Он возвращает произвольное значение после завершения работы сценария. Например, если запустить в командном процессоре (cmd.exe) сценарий, содержащий
SpecialFolders
Метод предназначен для работы с пользовательскими папками. Он также поддерживает следующие методы.
■ Count — возвращает общее количество пользовательских папок.
■ Length — аналогичен предыдущему методу.
■ Item (индекс) — возвращает путь к папке, определенной данным индексом. Индекс может принимать значения от 0 до общего числа папок (возвращаемое методом Count значение).
Рассмотрим пример, отображающий пути ко всем возможным пользовательским папкам.
Как обычно, были рассмотрены далеко не все объекты и методы, которые доступны в Windows XP. Например, был пропущен такой интересный и знаменитый объект (знаменитый потому, что в свое время именно он использовался в почтовом черве ILOVEYOU), как объект для доступа к почтовым функциям программы Outlook Express. Объект поддерживает очень много методов, не говоря уже о других объектах Windows XP, поэтому их описание могло вылиться в отдельную книгу. В любом случае, автор рассчитывал создать лишь введение в возможности сервера сценариев Windows. Если эта тема вам интересна, рекомендуется купить отдельную книгу, посвященную только ей.
Глава 17
Другие возможности
Теперь кратко рассмотрим несколько возможностей настройки интерфейса оболочки Windows XP или ее конфигурации без использования реестра, команд rundll32 и всего того, что мы с вами уже рассмотрели.
Вкладка Общие диалога Свойства системы
Существует возможность редактирования содержимого вкладки Общие диалога Свойства системы даже без доступа к реестру Windows XP. Плюсом этого метода является больше возможностей, которые с его помощью можно выполнить.
Итак, для редактирования содержимого вкладки Общие необходимо создать в каталоге %systemroot%\system32 два файла — oemINFo.ini и Oemlogo.bmp. Второй файл просто является картинкой, которая будет добавлена на вкладку Общие, а пример содержимого файла oemINFo.ini рассмотрим в листинге 17.1.
Назначение ключевых слов данного INI-файла легко понять на примере того, что он делает. Посмотрим на рис. 17.1.
Рис. 17.1. Результат применения файлов oemINFo.ini и Oemlogo.bmp
Рисунок, отображаемый слева внизу, является файлом oemlogo.bmp, тогда как кнопка Сведения о поддержке создается при помощи блока [Support Information] файла oemINFo.ini, а текст перед названием процессора — при помощи блока [General] файла oemINFo.ini.
Файл desktop.ini
Еще один интересный специальный файл, с помощью которого можно выполнить настройку оболочки Windows XP. Например, с его помощью можно изменить значок для папки, в которой он будет находиться, создать для нее описание и сделать многое другое. Для примера попробуем изменить изображение для отдельной папки и создать для нее описание. Для этого необходимо сделать следующее.
1. Создать в папке файл с названием desktop.ini (желательно также скрыть его).
2. Присвоить папке атрибут системной. Это выполняется с помощью команды attrib +S «путь к папке».
Если вы уже сделали папку системной, а также создали в ней файл desktop с расширением ini, то приведем в листинге 17.2 небольшой пример содержимого файла desktop.ini.
Назначение ключевых слов данного файла можно понять при взгляде на рис. 17.2.
Ключевое слово IconFile указывает путь к библиотеке, содержащей необходимый вам рисунок папки, а ключевое слово IconIndex определяет индекс необхо-димого вам изображения в данной библиотеке. Ключевое слово InfoTip определяет подсказку, отображаемую для данного файла.
Рис. 17.2. Использование файла desktop.ini для изменения изображения папки
С помощью файла desktop.ini можно также запретить создание в папке других папок и файлов (при этом есть возможность во вложенных папках создать папки и файлы). Для этого необходимо в блоке [.ShellClassInfo] создать следующие строки:
После этого рисунок папки изменится, а при попытке записи в папку будет выдаваться сообщение (рис. 17.3). Если же необходимо, чтобы рисунок папки не менялся, то строку CLSID={FF393560-C2A7-11CF-BFF4-444553540000} нужно удалить.
Рис. 17.3. Ошибка при создании папки или файла
Блок [.ShellClassInfo] может иметь ключевое слово LocalizedResourceName, которое переопределяет название папки. Например, если в файле desktop.ini для нашей папки создать строку LocalizedResourceName=@shell32.dll,-21765, то название папки Doc_Natali изменится на название Application Data. При этом, к сожалению, ключевое слово LocalizedResourceName не поддерживает прямой текст. Другими словами, нужно обязательно указывать текст, хранящийся в какой-либо библиотеке.