Читаем без скачивания Недокументированные и малоизвестные возможности Windows XP - Роман Клименко
Шрифт:
Интервал:
Закладка:
set wshshell = WScript.CreateObject("WScript.Shell")
set prog = wshshell.Exec("explorer.exe")
if prog.Status = 0 then
MsgBox prog.ProcessID
prog.Terminate
End if
SendKeys
Работа этого метода довольно интересна. Он возвращает произвольное значение после завершения работы сценария. Например, если запустить в командном процессоре (cmd.exe) сценарий, содержащий строку wshshell.SendKeys "This message return over by script", то после завершения работы сценария в командном процессоре (то есть в строке для ввода команд командного процессора) появится указанное сообщение.
SpecialFolders
Метод предназначен для работы с пользовательскими папками. Он также поддерживает следующие методы.
■ Count — возвращает общее количество пользовательских папок.
■ Length — аналогичен предыдущему методу.
■ Item (индекс) — возвращает путь к папке, определенной данным индексом. Индекс может принимать значения от 0 до общего числа папок (возвращаемое методом Count значение).
Рассмотрим пример, отображающий пути ко всем возможным пользовательским папкам.
Листинг 16.5. Перечисление пользовательских папокset wshshell = WScript.CreateObject("WScript.Shell")
For i = 0 to wshshell.SpecialFolders.Count – 1
MsgBox wshshell.SpecialFolders.Item(i)
Next
Как обычно, были рассмотрены далеко не все объекты и методы, которые доступны в Windows XP. Например, был пропущен такой интересный и знаменитый объект (знаменитый потому, что в свое время именно он использовался в почтовом черве ILOVEYOU), как объект для доступа к почтовым функциям программы Outlook Express. Объект поддерживает очень много методов, не говоря уже о других объектах Windows XP, поэтому их описание могло вылиться в отдельную книгу. В любом случае, автор рассчитывал создать лишь введение в возможности сервера сценариев Windows. Если эта тема вам интересна, рекомендуется купить отдельную книгу, посвященную только ей.
Глава 17
Другие возможности
Теперь кратко рассмотрим несколько возможностей настройки интерфейса оболочки Windows XP или ее конфигурации без использования реестра, команд rundll32 и всего того, что мы с вами уже рассмотрели.
Вкладка Общие диалога Свойства системы
Существует возможность редактирования содержимого вкладки Общие диалога Свойства системы даже без доступа к реестру Windows XP. Плюсом этого метода является больше возможностей, которые с его помощью можно выполнить.
Итак, для редактирования содержимого вкладки Общие необходимо создать в каталоге %systemroot%system32 два файла — oemINFo.ini и Oemlogo.bmp. Второй файл просто является картинкой, которая будет добавлена на вкладку Общие, а пример содержимого файла oemINFo.ini рассмотрим в листинге 17.1.
Листинг 17.1. Пример файла oemINFo.ini[Support Information]
Line1 = "На правах рекламы:"
Line2="Здесь могла бы быть ваша реклама…"
Line3 = "…а здесь ваша :-)"
[General]
Manufacturer = "Parad0x-DeS1gn"
Model = "смесь Pentium и Celeron"
Назначение ключевых слов данного 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. Пример содержимого файла desktop.ini[.ShellClassInfo]
IconFile = c:windowssystem32shell32.dll
IconIndex = 34
InfoTip = "Здесь находится много файлов, дорогих моему сердцу, поэтому просьба папку не открывать."
Назначение ключевых слов данного файла можно понять при взгляде на рис. 17.2.
Ключевое слово IconFile указывает путь к библиотеке, содержащей необходимый вам рисунок папки, а ключевое слово IconIndex определяет индекс необхо-димого вам изображения в данной библиотеке. Ключевое слово InfoTip определяет подсказку, отображаемую для данного файла.
Рис. 17.2. Использование файла desktop.ini для изменения изображения папки
С помощью файла desktop.ini можно также запретить создание в папке других папок и файлов (при этом есть возможность во вложенных папках создать папки и файлы). Для этого необходимо в блоке [.ShellClassInfo] создать следующие строки:
UICLSID={7BD29E00-76C1-11CF-9DD0-00A0C9034933}
CLSID={FF393560-C2A7-11CF-BFF4-444553540000}
После этого рисунок папки изменится, а при попытке записи в папку будет выдаваться сообщение (рис. 17.3). Если же необходимо, чтобы рисунок папки не менялся, то строку CLSID={FF393560-C2A7-11CF-BFF4-444553540000} нужно удалить.
Рис. 17.3. Ошибка при создании папки или файла
Блок [.ShellClassInfo] может иметь ключевое слово LocalizedResourceName, которое переопределяет название папки. Например, если в файле desktop.ini для нашей папки создать строку [email protected],-21765, то название папки Doc_Natali изменится на название Application Data. При этом, к сожалению, ключевое слово LocalizedResourceName не поддерживает прямой текст. Другими словами, нужно обязательно указывать текст, хранящийся в какой-либо библиотеке.
Но, кроме названия самой папки, с помощью файла desktop.ini можно изменить названия файлов, содержащихся в этой папке. Для этого служит блок INI-файла [LocalizedFileNames]. Он может включать в себя строки формата «истинное название файла»=«библиотека, и индекс нового названия в ней». К сожалению, новые названия прямым текстом указывать нельзя.
Например, если в папке содержится файл PICT0412.JPG, то для изменения названия этого файла на Рабочий стол (создать ярлык), нужно воспользоваться строкой [email protected], –21.
SCF-файлы
Файлы с таким расширением являются командными файлами оболочки Windows и используются для различных целей. Например, можно создать файл, который будет сворачивать все окна. Его содержимое приведено в листинге 17.3. Если ввести подобный текст в текстовый файл, а потом присвоить ему расширение SCF, то будет создан соответствующий файл (расширение файла будет скрыто), выполнение которого свернет все окна.
ПРИМЕЧАНИЕ
При этом значок, используемый файлом, можно изменять.
Листинг 17.3. Файл для сворачивания всех окон[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop
Можно также создать файл для просмотра каналов Интернета. Для этого используется представленный в листинге 17.4 текст.
Листинг 17.4. Файл для смены каналов[Shell]
Command=3
IconFile=shdocvw.dll,-118
[IE]
Command=Channels
Можно создать файл для открытия Проводника Windows XP, как показано в листинге 17.5.
Листинг 17.5. Открытие Проводника[Shell]
Command=2
IconFile=explorer.exe,1
[Taskbar]
Command=Explorer
Вообще, это довольно интересные файлы, так как они могут хранить любой другой посторонний текст, который не будет влиять на функциональность данных файлов. При этом никому и в голову не придет посмотреть содержимое этих файлов на предмет посторонних записей, поэтому в них можно запросто хранить конфиденциальную информацию.
Файл BOOT.INI
Данный файл используется при установке нескольких операционных систем семейства Windows на одном компьютере для реализации возможности выбора между ними при загрузке системы. Рассмотрим содержимое этого файла. Файл расположен в каталоге %systemdrive%, хотя наиболее удобным способом его редактирования является стандартная программа msconfig. Она имеет вкладку BOOT.INI, с помощью которой довольно легко работать с этим файлом, если знать его синтаксис. По этой причине сначала рассмотрим синтаксис данного файла.
Файл BOOT.INI состоит из двух блоков. Первый из них называется [boot loader] и содержит информацию о времени ожидания выбора пользователем операционной системы, а также об операционной системе, загрузка которой будет выполнена в случае, если пользователь так и не выбрал за предоставленное время конкретную операционную систему. Второй блок называется [operating systems]. В нем находится информация обо всех операционных системах, которые можно будет выбрать для загрузки с помощью списка операционных систем. Посмотрим на листинг 17.6, в котором представлен пример файла BOOT.INI.