Читаем без скачивания Недокументированные и малоизвестные возможности Windows XP - Роман Клименко
Шрифт:
Интервал:
Закладка:
■ OpenTextFile «путь и имя файла», «флаг открытия файла» — открывает файл, указанный в первом входном параметре, с доступом, указанным во втором входном параметре. Второй входной параметр может содержать следующие значения:
• 1 — открыть файл для чтения;
• 2 — открыть файл для перезаписи;
• 8 — открыть файл для дозаписи (записи в конец файла, то есть, не переписывая его содержимое).
При любом способе доступа к файлу метод возвращает указатель на объект, указывающий на открытый файл. Объект, указатель на который был возвращен, поддерживает те же методы, что и объект, получаемый при вызове метода CreateTextFile. Кроме того, если файл открывается с доступом на чтение, то доступны еще и следующие методы:
■ ReadLine — считать значение строки и перейти на следующую строку данного файла;
■ Read(количество символов) — считать первые n символов из строки данного файла;
■ ReadAll — считать все содержимое данного файла;
■ Skip — пропустить данное количество символов;
■ SkipLine — пропустить следующую строку символов;
■ AtEndOfLine — возвращает значение true, если достигнут конец строки;
■ AtEndOfStream — возвращает значение true, если достигнут конец файла.
Другие возможности
Рассмотрим другие возможности, которые предоставляют объекты сервера сценариев Windows. При этом будут рассмотрены как новые объекты, так и уже описанные ранее, ведь при их описании мы не всегда знакомились со всеми доступными в них методами.
Объект WshShell
Popup («текст сообщения», «количество секунд», «текст заголовка», «тип окна»)
Метод отображает текстовое сообщение, указанное в первом входном параметре. При этом, кроме текста сообщения нужно указать следующие входные параметры.
■ Количество секунд — определяет количество секунд, которое вызванный диалог будет отображаться. По истечении этого времени текстовое сообщение само исчезнет.
■ Текст заголовка — указывает текст заголовка диалога текстового сообщения.
■ Тип окна — константное выражение, определяющее количество кнопок текстового окна, а также тип выводимого окна. Возможны следующие константы (в скобках указаны числовые выражения, которым соответствуют эти константы).
Константы количества кнопок.
■ vbOkOnly — отображать только кнопку OK (0).
■ vbOkCancel — отображает кнопки OK и Отмена (1).
■ vbAbortRetryIgnore — кнопки Прервать, Повтор и Пропустить (2).
■ vbYesNoCancel — кнопки Да, Нет и Отмена (3).
■ vbYesNo — кнопки Да и Нет (4).
■ vbRetryCancel — кнопки Повтор и Отмена (5).
Константы типа окна. Они могут добавляться к одной из предыдущих констант (например, vbOkOnly + vbCritical).
■ vbCritical — выводит знак ошибки (16).
■ vbQuestion — знак вопроса (32).
■ vbExclamation — знак восклицания (48).
■ vbInformation — знак информации (64).
Константы кнопки по умолчанию. Они могут добавляться к одной из предыдущих констант (например, vbYesNoCancel + vbQuestion + vbDefaultButton3).
■ vbDefaultButton1 — первая кнопка имеет фокус (0).
■ vbDefaultButton2 — вторая кнопка имеет фокус (256).
■ vbDefaultButton3 — третья кнопка имеет фокус (512).
■ vbDefaultButton4 — четвертая кнопка имеет фокус (768).
Константы модальности. Они могут добавляться к одной из предыдущих констант (например, vbYesNoCancel + vbQuestion + vbDefaultButton3 + vbApplicationModal).
■ vbApplicationModal — окно является модальным для текущего приложения (0).
■ vbSystemModal — для всех приложений системы (4096)
ПРИМЕЧАНИЕ
Вы заметили, что входные значения некоторых методов берутся в скобки, а некоторых не берутся? На самом деле здесь все просто. Если метод возвращает значение и вы это значение получаете (то есть имеет место строка «переменная»=«метод»), то входные значения нужно брать в скобки, иначе, даже если метод возвращает значение, но вы его не принимаете (то есть имеет место строка «метод»), входные значения в скобки брать не нужно.
Метод может возвращать константу той кнопки, которую выбрал пользователь. Возможны следующие константы:
■ vbOk — пользователь выбрал кнопку OK (1);
■ vbCancel — кнопку Отмена (2);
■ vbAbort — кнопку Прервать (3);
■ vbRetry — кнопку Повтор (4);
■ vbIgnore — кнопку Пропустить (5);
■ vbYes — кнопку Да (6);
■ vbNo — кнопку Нет (7).
CreateShortcut("путь к ярлыку и его имя")
Метод создает ярлык, названный в честь входного параметра. При этом следует учитывать, что указанный во входном параметре файл должен завершаться расширением LNK или URL.
Вызова данного метода еще не достаточно для создания ярлыка. Метод возвращает объект, после принятия которого именно с этим объектом и ведется дальнейшая работа. Данный объект поддерживает два свойства:
■ TargetPath — определяет путь к файлу, на который будет создаваться ярлык;
■ Save — после вызова этого метода ярлык будет создан.
CurrentDirectory
Свойство возвращает текущую директорию, в которой находится сценарий или которая используется в данный момент командной строкой, если сценарий вызывается из командной строки.
Рассмотрим пример работы с этим и двумя предыдущими методами. В этом примере будет создан ярлык файла, путь к которому задаст пользователь. При этом ярлык будет располагаться либо в текущем каталоге (если пользователь нажмет кнопку Да), либо в каталоге, который пользователь сам укажет.
Листинг 16.2. Работа с ярлыком и текстовым диалогомset wshshell = WScript.CreateObject("WScript.Shell")
vibor = wshshell.Popup("Создать ярлык в каталоге " & wshshell.CurrentDirectory & "?", "100", "Создание ярлыка", vbYesNoCancel)
select case vibor
case vbYes
set yarlik = wshshell.CreateShortcut(wshshell.CurrentDirectory & "eto_yarlik.lnk")
yarlik.TargetPath = "d:aa.bmp"
yarlik.Save
case vbNo
path = InputBox("Введите путь и имя ярлыка","Создание ярлыка",
wshshell.CurrentDirectory & "eto_yarlik.lnk")
If path <> "" Then
set yarlik = wshshell.CreateShortcut(path)
yarlik.TargetPath = "d:aa.bmp"
yarlik.Save
Else
MsgBox "Ну как хотите…"
End if
case vbCancel
MsgBox "Ну как хотите…"
end select
Environment
Метод предназначен для работы с системными переменными. Системные переменные можно посмотреть в одноименном списке диалога Переменные среды, который отобразится после нажатия кнопки Переменные среды, расположенной на вкладке Дополнительно диалога Свойства системы. Метод также поддерживает некоторые методы, которые будут рассмотрены.
■ Count — возвращает общее количество системных переменных, созданных на данный момент.
■ Length — аналогичен предыдущему методу.
■ Remove(имя переменной) — удаляет указанную системную переменную.
■ Item(имя переменной) — возвращает значение данной системной переменной.
Рассмотрим пример работы с системными переменными. Сначала пример узнает общее количество таких переменных, потом пытается считать значение переменной winbootdir (как правило, такая системная переменная всегда присутствует на компьютере), а потом удаляет эту переменную и снова считывает общее количество системных переменных.
ПРИМЕЧАНИЕ
Получить значение переменной можно также с помощью подобного вызова: MsgBox wshshell.ExpandEnvironmentStrings("%systemroot%").
Листинг 16.3. Работа с системными переменнымиset wshshell = WScript.CreateObject("WScript.Shell")
MsgBox wshshell.Environment.Count
MsgBox wshshell.Environment.item("winbootdir")
wshshell.Environment.Remove("winbootdir")
MsgBox wshshell.Environment.Count
Exec (путь и название исполняемого файла)
Метод предназначен для выполнения команд и при своем вызове возвращает объект, с помощью которого можно управлять вызванной программой. Данный объект поддерживает следующие методы.
ПРИМЕЧАНИЕ
Выполнить команду можно также с помощью метода Run. Он имеет следующий синтаксис: «переменная» = wshshell.run("путь к программе", TRUE).
■ Terminate — завершить вызванную программу.
■ ExitCode — код, возвращаемый при открытии программы. Если значение этого кода равно 0, то программа была вызвана успешно. Для этих целей можно также воспользоваться методом Status.
■ ProcessID — возвращает идентификатор, присвоенный нашей вызванной программе.
Рассмотрим простой пример работы с данным методом. В этом примере вызывается Проводник, после чего отображается PID созданного нами процесса, а затем процесс завершится.