|
|||||||
Объект WshShell
Время создания: 10.02.2021 20:39
Текстовые метки: Shell
Раздел: Script
Запись: xintrea/mytetra_db_adgaver_new/master/base/1612978625atbb0w7yeh/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Перейти на главную страничку сайта (список статей, файлы для скачивания) ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах) Описание объектов Windows Script Host, их свойств и методов Объект WshShell Содержание: 1. Создание объекта
2. Свойства
2.1. CurrentDirectory 2.2. Environment 2.3. SpecialFolders 3. Методы
3.1. ExpandEnvironmentStrings 3.2. Popup 3.3. SendKeys 3.4. Run 3.5. Exec 3.6. AppActivate 3.7. RegDelete 3.8. RegRead 3.9. RegWrite 3.10. LogEvent 3.11. CreateShortcut 4. Объект WshScriptExec
4.1. Создание объекта 4.2. Свойства 4.2.1. ExitCode 4.2.2. ProcessID 4.2.3. Status 4.2.4. StdOut 4.2.5. StdIn 4.2.6. StdErr 4.3. Методы 4.3.1. Terminate 5. Объект WshShortcut
5.1. Создание объекта 5.2. Свойства 5.2.1. Arguments 5.2.2. Description 5.2.3. FullName 5.2.4. Hotkey 5.2.5. IconLocation 5.2.6. TargetPath 5.2.7. WindowStyle 5.2.8. WorkingDirectory 5.3. Методы 5.3.1. Save 6. Объект WshUrlShortcut
6.1. Создание объекта 6.2. Свойства 6.2.1. FullName 6.2.2. TargetPath 6.3. Методы 6.3.1. Save Пример: Set WshShell = CreateObject("WScript.Shell")
Синтаксис: CurrentDirectory
Возвращаемое значение: строка, путь к текущему каталогу. Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
MsgBox WshShell.CurrentDirectory
Синтаксис: Environment(<Type>)
Возвращаемое значение: объект-коллекция "WshEnvironment", содержащая переменные среды. Необязательный параметр "Type" - строка, задаёт вид переменных. Возможные значения:
Замечание: чтение и запись. В коллекцию можно добавлять элементы и удалять их. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment
MsgBox WshEnv.Item("WINDIR")
Другой пример: Set WshShell = CreateObject("WScript.Shell")
WScript.Echo "ПЕРЕМЕННЫЕ System:"
For Each Var In WshShell.Environment("System")
WScript.Echo Var
Next
WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ User:"
For Each Var In WshShell.Environment("User")
WScript.Echo Var
Next
WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ Volatile:"
For Each Var In WshShell.Environment("Volatile")
WScript.Echo Var
Next
WScript.Echo vbCrLf & "ПЕРЕМЕННЫЕ Process:"
For Each Var In WshShell.Environment("Process")
WScript.Echo Var
Next
Синтаксис: SpecialFolders(<WshSpecialFolder>)
Возвращаемое значение: объект-коллекция "SpecialFolders", содержащая пути к специальным папкам Windows. Некоторые специальные папки:
Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
Set SpecialFolders = WshShell.SpecialFolders
MsgBox SpecialFolders.Item("Desktop")
MsgBox WshShell.SpecialFolders("Desktop")
Другой пример: Set WshShell = CreateObject("WScript.Shell")
For Each Folder In WshShell.SpecialFolders
WScript.Echo Folder
Next
Синтаксис: ExpandEnvironmentStrings(<String>)
Назначение: возвращает значение переменной среды текущего командного окна. Параметры:
Пример: Set WshShell = CreateObject("WScript.Shell")
MsgBox WshShell.ExpandEnvironmentStrings("%WinDir%")
Синтаксис: Popup(<Text>,<SecondsToWait>,<Title>,<Type>)
Назначение: выводит на экран модальное окно сообщения. Параметры:
Описание: возвращает целое значение, с помощью которого можно узнать, какая кнопка быля нажата пользователем. Возможные значения:
Пример: Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Текст сообщения",, "Текст заголовка", 4+16
Синтаксис: SendKeys(<String>)
Назначение: посылает одно или несколько нажатий клавиш в активное окно (имитация набора на клавиатуре). Параметры:
Описание: каждая клавиша задаётся своим символом. Например, чтобы задать нажатие друг за другом клавиш А, Б и В, нужно указать в качестве параметра строку "АБВ". Некоторые специальные символы следует всегда задавать заключёнными в фигурные скобки. Перечень таких символов: {+} {^} {%} {~} {(} {)} {[} {]} {{} {}}
Задание неотображаемых символов и специальных клавиш:
Можно использовать скобки. Например, нажатие клавиш <G> и <S> при нажатом <Shift> следует записывать как "+(GS)". Запись "+GS" приведёт к нажатию клавиши <G> при нажатом <Shift>, а затем клавиши <S> уже без <Shift>. Задание нескольких нажатий: "{LEFT 42}" приведёт к нажатию клавиши <Left Arrow> 42 раза подряд, "{h 10}" приведёт к нажатию клавиши <h> 10 раз подряд. Метод не может быть использован для посылки нажатий клавиш в приложения MS-DOS. Пример: Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}"
Синтаксис: Run(<Command>,<WindowStyle>,<WaitOnReturn>)
Назначение: создаёт новый независимый процесс, который запускает заданное приложение. Параметры:
Описание: если параметр "WaitOnReturn" установлен в True, метод возвращает код выхода вызванного приложения. Иначе метод всегда возвращает ноль. Пример: Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "explorer /e,/root,""C:\Program Files"""
Другой пример: Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, True)
MsgBox "Обработка завершена! Код возврата - " & RetCode
Синтаксис: Exec(<Command>) Назначение: создаёт новый дочерний процесс (т.е. процесс с теми же переменными среды), который запускает заданное консольное приложение. Возвращается объект "WshScriptExec", который позволяет контролировать ход выполнения запущенного приложения и обеспечивает доступ к потокам StdIn, StdOut и StdErr этого приложения. Параметры:
Описание: с помощью данного метода можно запускать и графические оконные приложения. В этом случае возвращаемый объект "WshScriptExec" полезен тем, что позволяет получить идентификатор запущенного процесса, который можно использовать, например, для активизации приложения с помощью метода AppActivate. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("nslookup 127.0.0.1")
WScript.Sleep 7000
Set TextStream = WshExec.StdOut
Str = vbNullString
While Not TextStream.AtEndOfStream
Str = Str & Trim(TextStream.ReadLine()) & vbCrLf
Wend
MsgBox Str
Другой пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad")
WScript.Sleep 2000
WshShell.AppActivate(WshExec.ProcessID)
WshShell.SendKeys "0123456789"
Синтаксис: AppActivate(<Title>)
Назначение: активизирует указанное окно какого-либо приложения. Возвращает True в случае успеха и False в случае неудачи. Параметры:
Описание: если в качестве параметра указан заголовок окна приложения, значение параметра сравнивается по очереди с заголовками окон всех запущенных приложений. Если не найдено ни одного точного совпадения, будет производиться поиск окна, заголовок которого начинается с указанной строки. Если и в этом случае не будет найдено ни одного подходящего окна, будет производиться поиск окна, заголовок которого заканчивается на указанную строку. Если будет найдено несколько подходящих окон, произойдёт активизация одного из них (произвольно). Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad")
WScript.Sleep 2000
Res = WshShell.AppActivate(WshExec.ProcessID)
If Res Then WshShell.SendKeys("0123456789")
Синтаксис: RegDelete(<Name>)
Назначение: удаляет из реестра заданный параметр или раздел целиком. Параметры:
Описание: если "Name" оканчивается символом "\", метод удаляет ключ целиком, в противном случае удаляется параметр. Параметр "Name" должен начинаться с одного из корневых ключей:
Пример: Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\NewKey\","Value"
WshShell.RegWrite "HKEY_CURRENT_USER\NewKey\Param","Value","REG_SZ"
MsgBox WshShell.RegRead("HKEY_CURRENT_USER\NewKey\Param")
MsgBox WshShell.RegRead("HKEY_CURRENT_USER\NewKey\")
WshShell.RegDelete "HKEY_CURRENT_USER\NewKey\Param"
WshShell.RegDelete "HKEY_CURRENT_USER\NewKey\"
Синтаксис: RegRead(<Name>)
Назначение: читает из реестра заданный параметр или значение по умолчанию для раздела. Параметры:
Описание: если "Name" оканчивается символом "\", метод считывает значение по умолчанию для раздела, в противном случае считывается параметр. Параметр "Name" должен начинаться с одного из корневых ключей:
Пример: Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\NewKey\","Value"
WshShell.RegWrite "HKEY_CURRENT_USER\NewKey\Param","Value","REG_SZ"
MsgBox WshShell.RegRead("HKEY_CURRENT_USER\NewKey\Param")
MsgBox WshShell.RegRead("HKEY_CURRENT_USER\NewKey\")
WshShell.RegDelete "HKEY_CURRENT_USER\NewKey\Param"
WshShell.RegDelete "HKEY_CURRENT_USER\NewKey\"
Синтаксис: RegWrite(<Name>,<Value>,<Type>)
Назначение: записываает в реестр заданный параметр или раздел. Параметры:
Описание: если "Name" оканчивается символом "\", метод записывает раздел, в противном случае записывается параметр. Параметр "Name" должен начинаться с одного из корневых ключей:
Пример: Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\NewKey\","Value"
WshShell.RegWrite "HKEY_CURRENT_USER\NewKey\Param","Value","REG_SZ"
MsgBox WshShell.RegRead("HKEY_CURRENT_USER\NewKey\Param")
MsgBox WshShell.RegRead("HKEY_CURRENT_USER\NewKey\")
WshShell.RegDelete "HKEY_CURRENT_USER\NewKey\Param"
WshShell.RegDelete "HKEY_CURRENT_USER\NewKey\"
Синтаксис: LogEvent(<Type>,<Message>,<Target>)
Назначение: протоколирует событие в журнале WindowsNT или в файле WSH.log. Возвращает True в случае успеха и False в противном случае. Параметры:
Описание: в Windows NT/200/XP события записываются в системном журнале, а в Windows 9x - в файле WSH.log, который находится в каталоге пользователей. Пример: Set WshShell = CreateObject("WScript.Shell")
WshShell.LogEvent 4, "Test event!"
Синтаксис: CreateShortcut(<Path>)
Назначение: возвращает объект "WshShortcut" или "WshURLShortcut", указывающий на ярлык .lnk или .url. Параметры:
Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshURLShortcut = WshShell.CreateShortcut("C:\Microsoft.url")
WshURLShortcut.TargetPath = "http://microsoft.com"
WshURLShortcut.Save
Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad")
Синтаксис: ExitCode
Возвращаемое значение: код выхода, устанавливаемый дочерней задачей при завершении выполнения. Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
'запуск "xcopy" с заведомо ошибочными параметрами
Set WshExec = WshShell.Exec("xcopy abc123")
'пауза для запуска приложения
WScript.Sleep 2000
'чтение кода выхода
MsgBox WshExec.ExitCode
Синтаксис: ProcessID
Возвращаемое значение: идентификатор запущенного процесса (PID). Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad")
WScript.Sleep 2000
WshShell.AppActivate WshExec.ProcessID
WshShell.SendKeys "0123456789"
Синтаксис: Status
Возвращаемое значение: состояние запущенного процесса. Возможные значения:
Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad")
WScript.Sleep 2000
MsgBox "status - " & WshExec.Status
WshExec.Terminate
WScript.Sleep 2000
MsgBox "status - " & WshExec.Status
Синтаксис: StdOut
Возвращаемое значение: объект "TextStream", соответствующий стандартному выходному потоку запущенной задачи. Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("nslookup")
Set InStream = WshExec.StdIn
InStream.WriteLine "help"
InStream.WriteLine "exit"
Set OutStream = WshExec.StdOut
Str = vbNullString
While Not OutStream.AtEndOfStream
Str = Str & Trim(OutStream.ReadLine()) & vbCrLf
Wend
MsgBox Str
Синтаксис: StdIn
Возвращаемое значение: объект "TextStream", соответствующий стандартному входному потоку запущенной задачи. Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("nslookup")
Set InStream = WshExec.StdIn
InStream.WriteLine "help"
InStream.WriteLine "exit"
Set OutStream = WshExec.StdOut
Str = vbNullString
While Not OutStream.AtEndOfStream
Str = Str & Trim(OutStream.ReadLine()) & vbCrLf
Wend
MsgBox Str
Синтаксис: StdErr
Возвращаемое значение: объект "TextStream", соответствующий стандартному потоку ошибок запущенной задачи. Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("nslookup")
Set InStream = WshExec.StdIn
InStream.WriteLine "abc123"
InStream.WriteLine "exit"
Set OutStream = WshExec.StdErr
Str = vbNullString
While Not OutStream.AtEndOfStream
Str = Str & Trim(OutStream.ReadLine()) & vbCrLf
Wend
MsgBox Str
Синтаксис: Terminate
Назначение: пытается закрыть приложение, посылая ему сообщение WM_CLOSE. Если это не срабатывает, задача завершается принудительно. Параметры: нет. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad")
WScript.Sleep 2000
MsgBox "status - " & WshExec.Status
WshExec.Terminate
WScript.Sleep 2000
MsgBox "status - " & WshExec.Status
Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
Синтаксис: Arguments
Возвращаемое значение: строка, параметры командной строки программы, запускаемой ярлыком. Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Синтаксис: Description
Возвращаемое значение: строка, описание в поле "Комментарий" ("Comment") в свойствах ярлыка. Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Синтаксис: FullName
Возвращаемое значение: строка, полный путь к файлу ярлыка. Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Синтаксис: Hotkey
Возвращаемое значение: строка, содержащая названия горячих клавиш, разделённые знаком "+". Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Синтаксис: IconLocation
Возвращаемое значение: строка, содержащая расположение иконки для ярлыка в формате "путь к файлу, индекс иконки". Индексы иконок начинаются с нуля. Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Синтаксис: TargetPath
Возвращаемое значение: строка, содержащая путь к исполняемому файлу. Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Синтаксис: WindowStyle
Возвращаемое значение: число, определяющее вид окна запускаемого приложения. Возможные значения:
Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Синтаксис: WorkingDirectory
Возвращаемое значение: строка, путь к рабочему каталогу ярлыка. Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Синтаксис: Save
Назначение: сохраняет ярлык. Параметры: нет. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshShortcut = WshShell.CreateShortcut("C:\Notepad.lnk")
WshShortcut.Arguments = "C:\autoexec.bat"
WshShortcut.Description = "Пробный ярлык"
WshShortcut.HotKey = "CTRL+ALT+F"
WshShortcut.IconLocation = "shell32.dll, 5"
WshShortcut.TargetPath = "notepad.exe"
WshShortcut.WindowStyle = 1
WshShortcut.WorkingDirectory = "C:\"
MsgBox WshShortcut.FullName
WshShortcut.Save
Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshUrlShortcut = WshShell.CreateShortcut("C:\Microsoft.url")
Синтаксис: FullName
Возвращаемое значение: строка, полный путь к файлу ярлыка. Замечание: только чтение. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshUrlShortcut = WshShell.CreateShortcut("C:\Microsoft.url")
WshUrlShortcut.TargetPath = "http://microsoft.com"
MsgBox WshUrlShortcut.FullName
WshUrlShortcut.Save
Синтаксис: TargetPath
Возвращаемое значение: строка, содержащая путь к документу Интернет. Замечание: чтение и запись. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshUrlShortcut = WshShell.CreateShortcut("C:\Microsoft.url")
WshUrlShortcut.TargetPath = "http://microsoft.com"
MsgBox WshUrlShortcut.FullName
WshUrlShortcut.Save
Синтаксис: Save
Назначение: сохраняет ярлык. Параметры: нет. Пример: Set WshShell = CreateObject("WScript.Shell")
Set WshUrlShortcut = WshShell.CreateShortcut("C:\Microsoft.url")
WshUrlShortcut.TargetPath = "http://microsoft.com"
MsgBox WshUrlShortcut.FullName
WshUrlShortcut.Save
Составление - Людоговский Александр Перейти на главную страничку сайта (список статей, файлы для скачивания) © 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|