Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

простой вызов метода выглядит как Объект

Работа добавлена на сайт samzan.net:


90 Обычно в скрипте используются методы и свойства созданного объекта.

Метод может выполнять какие-либо действия, принимать и возвращать значения. Чаще всего нам неважно, какой именно код выполняет тот или иной метод используемого нами объекта, однако знать, как тот или иной метод можно вызвать, мы обязаны. Всего три способа:

1) простой вызов метода выглядит как

Объект.метод

При этом не возвращаются и не принимаются никакие параметры.

2) второй способ:

объект.метод параметр1 [, параметр2, ... , параметр]

Параметры передаются путем перечисления через запятую, скобки не используются.

3) третий способ:

моя_переменная = объект.метод (параметр1 [, параметр2, ... , параметрn])

В этом случае значение, которое возвращает метод, присваивается переменной. При этом применение скобок для передаваемых параметров обязательно. Даже если никакие параметры не передаются, круглые скобки все равно обязательны:

моя_переменная = объект.метод() 

91 Основная функциональность скриптов реализуется через библиотеки классов. В Windows, как правило, библиотеки классов реализованы при помощи COM-технологий.

Все классы идентифицируются по ProgID (Programmatic Identifier). Информация о ProgID хранится в разделе реестра HKEY_CLASSES_ROOT и через него определяется, какой файл *.dll, *.exe и *.ocx содержит данный объект. ProgId состоит из имени библиотеки типов и имени класса. Например, при выполнении команды

Set MyObject = CreateObject(“Scripting.FileSystemObject”)

Через реестр определяется физический файл, в котором находится библиотека Scripting и класс FSO.

Скриптовые среды (в том числе WSH) работают с COM-объектами с определенными ограничениями. Одно из главных ограничений - по типам данных, которые могут передаваться COM-объектам. Поэтому из скриптов можно обращаться далеко не ко всем COM-объектам. COM-объекты, которые полностью соответствуют требованиям скриптов, называются объектами автоматизации (automation objects).

92

Запуск приложения производится при помощи объекта WScript.Shell. Первая строка для работы с этим объектом выглядит как

Dim WshShell

set WshShell = WScript.CreateObject("WScript.Shell")

Сам запуск производится при помощи метода Run:

WshShell.Run "Имя_приложения"

Необязательные параметры: цифра (1-10) - вид диалогового окна, true/false - приостанавливать выполнение скрипта пока не завершится работа программы или нет.

93

 Выполнению операций с Панелью управления, System Tray, меню Start и т.п. поможет объект Shell.Application. Этот объект представляет графическую оболочку Windows - Windows Explorer:

Dim oShell

Set oShell = CreateObject("Shell.Application")

oShell.TrayProperties()

oShell.SetTime()

Через этот объект можно также получить доступ к любому элементу панели управления:

oShell.ControlPanelItem("powercfg.cpl")

Можно выполнить команду из контекстного меню для любого файла:

Set oShell = CreateObject("Shell.Application")

Set Folder = oShell.NameSpace("C:\")

Set File = Folder.ParseName("params.txt")

File.InvokeVerb("Open")

Можно приостанавливать работу компьютера (Suspend), можно отключать ноутбуки от доковой станции и выполнять кучу других задач.

94-97

Работа с объектами файловой системы из скрипта VBScript, объектная библиотека ScriptingRuntime, объекты FileSystemObject, Drive, Folder, File, TextStream, просмотр всех каталогов на диске, запись/чтение информации из текстового файла

Основные возможности работы с объектами файловой системы через WSH реализованы при помощи класса FileSystemObject, который физически находится в библиотеке Scrrun.dll. Как правило, работа начинается с создания объекта FSO:

Dim fso1

Set fso1 = WScript.CreateObject("Scripting.FileSystemObject")

Далее используем созданный объект для выполнения различных операций.

Наиболее часто используемые возможности:

1) просмотреть/запротоколировать информацию о всех дисках на компьютере (используется свойство Drives, возвращающее набор дисков, и свойства объекта Drive):

Set oDrives = fso1.Drives

For Each i In oDrives

           MsgBox ("Буква диска: " & i.DriveLetter & " Тип диска: " & i.DriveType  & "Метка диска: " & i.VolumeName & " Готовность к работе: " & i.IsReady)

Next

Подробнее про объект Drive - ниже.

2) получить список всех подкаталогов данного каталога (используется свойство GetFolder и далее возможности объекта Folder):

Set oFolders = fso1.GetFolder("C:\")

Set oSubfolders = oFolders.SubFolders

For Each oFolder In oSubFolders

           strListFolders = strListFolders & oFolder.Name & vbCrLf

Next    

MsgBox strListFolders

3) получить информацию о физическом размере диска (свойство объекта Drive TotalSize):

Set oDrive1 = fso1.GetDrive("C")

nSize = FormatNumber (oDrive1.TotalSize,0)

MsgBox nSize

4) получить информацию о размере свободного пространства (свойства объекта Drive FreeSpace и AvailableSpace; FreeSpace выводит информацию об физическом свободном пространстве, AvailableSpace - информацию о свободном пространстве, доступном текущему пользователю - с учетом дисковой квоты)

Set oDrive1 = fso1.GetDrive("C")

nSize = FormatNumber (oDrive1.TotalSize,0)

MsgBox nSize

5) скопировать каталог со всем содержимым (используется метод CopyFolder, true означает - перезаписывать содержимое, используется по умолчанию, поэтому можно не указывать)

fso1.CopyFolder "C:\Diagnostics", "d:\Diagnostics", true

Аналогично производится перемещение и удаление папок.

6) удалить все файлы с определенным именем (например, борьба с вирусами или компьютерными игрушками). Само удаление произвести несложно: для этого используется метод DeleteFile:

fso1.DeleteFile "C:\scandisk.log", True       'true означает, что удаляем в том числе и read-only файлы

Однако обычно нужно решить еще две задачи:

o       обеспечить отсутствие run-time error, если проблемы с удаление файла (файл открыт и т.п.)

o       подключиться к нужному каталогу

o       пройти по всем каталогам и подкаталогам, удаляя данный файл.

Каждую из этих задача удобнее решать при помощи отдельных подпроцедур. Первая решается так:

Sub FileDelete(sFile)

           On Error Resume Next

           Fso1.DeleteFile (sFile)

                       If Err.Number <> 0 Then

                                  WScript.Echo "Error deleting file: " & sFile

End If

End Sub

Для простоты мы выводим сообщение пользователю, однако в реальной работе лучше в случае возникновения ошибки писать протокол в текстовый файл для администратора (об этом позже).

Чтобы подключиться к нужному подкаталогу:

Function GetFolder (sFolder)

           On Error Resume Next

           Set GetFolder = Fso1.GetFolder (sFolder)

           If Err.Number <> 0 Then

                       WScript.Echo "Error connecting to folder: " & sFolder

           WScript.Quit Err.Number

End If

End Function

Чтобы пройтись по всем подкаталогам:

Sub RunSubFolders (objFolder)

           If objFolder <> "\System Volume Information" Then

           MainSub objFolder

                       For Each iFolder in objFolder.SubFolders

                        RunSubFolders iFolder

                       Next

           End If

End Sub

Проверка на System Volume Information - потому что при обращении к нему возникает ошибка.

Теперь решаем нашу задачу:

sDir = "C:"

sFile = "lines.exe"

Set objDir = GetFolder (sDir)

RunSubFolders (objDir)

Sub MainSub (objDir)

           For Each eFile in objDir.Files

           If LCase(eFile.Name) = LCase(sFile) Then

           FileDelete eFile

           End If

           Next

End Sub

Конечно, в реальной работе лучше протоколировать удаление всех файлов.

7) поменять атрибуты файла (например, скрыть важные файлы ил установить для них режим read-only).

Для подключения к существующему файлу лучше всего использовать специальную подпроцедуру GetFile (аналог GetFolder в предыдущем примере):

Function GetFile(sFile)

           On Error Resume Next

           Set GetFile = Fso1.GetFile(sFile)

           If Err.Number <> 0 Then

                       WScript.Echo("Error Connecting to: " & sFile

                       WScript.Quit Err.Number

           End If

End Function

Атрибуты файла определяются как битовая маска - значение свойства Attributes. Просмотреть возможные значения можно через справку по WSH 5.6, Attributes property.

Установить проще всего так (в нашем примере устанавливаем значение Read-Only):

Set gFile = GetFile ("C:\test1.txt")

gFile.Attributes = 1

8) прочесть информацию из текстового файле

Set TxtStream = fso1.OpenTextFile("\\london1\c$\test1.txt")

           Do While Not (TxtStream.atEndOfStream)

           Text = Text & TxtStream.ReadLine & vbCrlf

           Loop

MsgBox Tex

Большие файлы настоятельно рекомендуется открывать на чтение в окне Internet Explorer тем же методом Navigate.

9) запись / добавление информации к текстовому файлу. Эта возможность используется очень часто - например, для протоколирования хода выполнения скрипта или фиксирования результатов обследования компьютеров пользователей. В некоторых ситуациях файл можно обрабатывать дальше - например, переслать его по электронной почте средствами CDO (об этом в следующих модулях) или средствами DTS положить на сервер баз данных.

Выглядит это так:

           If Fso1.FileExists ("C:\test1.txt") Then

           Set txtStreamOut = fso1.OpenTextFile("C:\test1.txt",8,True)

           ' "2" означает "открыть на добавление", True - писать в Unicode

                                  txtStreamOut.WriteLine "Строка 1"

                                  txtStreamOut.WriteLine "Строка 1"

           Else

           Set MyFile = fso1.CreateTextFile("C:\test1.txt")

           MyFile.WriteLine "Строка 1"

           MyFile.WriteLine "Строка 2"

           End If

Ограничения WSH при работе с файловой системой:

WSH в принципе не умеет работать с двоичными файлами - только текстовыми;

при помощи WSH нельзя настроить разрешения и аудит для файлов (это можно сделать средствами WMI).

98

Многие дополнительные возможности работы в файловой системе можно получить при помощи утилит командной строки из Resource Kit:

associate - позволяет создать ассоциацию программы с расширением имени файла;

diruse - просмотреть информацию о используемом пространстве, включая файлы и каталоги, превышающие определенный размер;

diskmap - в командой стоке просмотреть информацию о размере физического диска и его геометрии;

diskuse - показать, сколько места на диске занимают файлы каждого пользователя (по владельцам)

dupfinder - найти повторяющиеся файлы на дисках;

fcopy и robocopy - утилиты надежного копирования файлов (даже если проблемы с сетью). fcopy использует Message Queuing, robocopy - свою службу

freedisk - возвращает объем свободного пространства на диске;

mcopy/mtc (эквиваленты copy и xcopy)  - копирование с созданием протокола копирования;

qgrep - аналог Unix grep, поиск строки в указанном файле (файлах)

perms - выводит разрешения для указанного файла;

showacls - тоже выводит разрешения, но уже для файла, каталога или дерева каталогов, в более удобном формате;

subinacl - позволяет выводить информацию о разрешениях на файлы (а также ключи реестра и службы) и переносить разрешения с одного пользователя на другого;

where - ищет файлы в указанном вами месте;

xcacls - позволяет менять разрешения на файлы из командной строки.

Скопировать/перенести файлы с сохранением всех разрешений (например, на новый файл-сервер) позволяет обычный FAR (или стандартная утилита Microsoft XCOPY).

99

Очень часто возникает задача создания ярлыков на компьютерах всех пользователей для какого-либо документа/папки/программы/принтера/Web (Intranet) ресурса. WSH позволяет создавать как обычные ярлыки (*.lnk), так и web - *.url.

Как это сделать: вначале нам нужно разобраться с путем, по которому будет помещен созданный нами ярлык. Видимо, нас интересует рабочий стол пользователя, но его папка лежит в профиле пользователя, а он сам - где угодно. Придется использовать специальный прием - свойство объекта WScript.Shell SpecialFolders:

set oShell = WScript.CreateObject (“WScript.Shell”)

DesktopPath = oShell.SpecialFolders(“AllUsersDesktop”)

ProgramsPath = oShell.SpecialFolders(“Programs”)

Последняя строчка относится к меню Start -> Programs.

Через вшитые в VBScript константы можно обращаться к Windows, System (System32), Temp, через WScript.Shell - Desktop, StartMenu, Startup, Programs (все - для конкретного и нескольких пользователей), Favorites, NetHood, MyDocuments, Recent, SendTo, Fonts и кучу прочих мест.

Само создание ярлыка выглядит так:

set oShell = WScript.CreateObject (“WScript.Shell”)

Set oShortCut = oShell.CreateShortcut(“MyText.lnk”)

oShortCut.TargetPath = “\\Myserver\myFolder\doc1.txt”

oShortCut.Save ‘так будет создан в том же каталоге, где находится скрипт

Чтобы был создан на десктопе, создание скрипта производится так:

Set oShortCut = oShell.CreateShortcut(DeskTopPath & “\MyText.lnk”) ‘ и далее по тексту




1.  ФУНКЦИИ УПРАВЛЕНИЯ И КЛАССИФИКАЦИЯ ЭКОНОМИЧЕСКОГО АНАЛИЗА
2. клеялися. І ні щоб вибрати якогось путнього і хорошого
3. чем среди взрослого населения
4. Реферат- Анализ личности несовершеннолетних жертв половых преступлений
5. Валерий Харламов
6. тематическая проверка состояния тормозной системы как в целом так и отдельных ее элементов.html
7. Государственный политический режим.html
8. Общие черты и различия между рекламой и паблик рилейшнз
9. Тема 1 Внутренняя геополитика России и регулирование геополитических конфликтов2 часа План занятия
10. Неизвестное сочинение Генделя
11. рефератдисертації на здобуття наукового ступенякандидата сільськогосподарських наук Сімферополь 2000 Д
12. Саратовский государственный технический университет имени Гагарина Ю1
13. і. Основними сучасними формами правління є парламентська республіка президентська республіка конституцій
14. КОНТРОЛЬНАЯ РАБОТА ВАРИАНТ 1
15. Воздействие человека на биосферу
16. Тема13 Об~єктноорієнтовне програмування
17. Фабрика звёзд дом дождь собака фабрика 2
18. тема персонажей чеховской драмы
19. Це нервовопсихічний розлад викликане тривалими психотравмуючими факторами емоційним або розумовою перен
20. Розробка колекції жіночого одягу