Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WSHost_I.doc
Скачиваний:
5
Добавлен:
13.11.2018
Размер:
162.82 Кб
Скачать

Метод Popup объекта WshShell

Метод позволяет создавать диалоговые окна, как и функция MsgBox.

WshShell.Popup(строковая переменная, время, заголовок окна, кнопки диалогового окна)

Dim Ws,Res, Text, Title 'объявление переменных

Set Ws=Wscript.CreateObject("WScript.Shell") 'создание объекта WshSell

Text="Вывод" &vbCrLf& "строк"

Title="Заголовок окна"

Res=Ws.popup(Text,0,Title,vbOkCancel)

'в диалоговом окне присутствуют кнопки Ok, Cancel

if Res=vbOk _

then Ws.popup "Нажата кнопка Ok"_

Else Ws.popup "Нажата кнопка отмена" End If

'определили какая кнопка нажата

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

Ввод строк текста

В консольном и графическом режимах ввод текста осуществляется по разному.

Ввод строк в консольном режиме

Для ввода строк в консольном режиме используется метод WScript.StdIn.ReadLine, при использовании этого метода ввод завершается нажатием клавиш Enter. При использовании этого метода возникают проблемы с кодировкой вследствие того, что этот метод возвращает строку в DOS-кодировке. Для корректного отображения символов кириллицы необходимо создавать дополнительные пользовательские функции.

'***************************************************

'функция для перевода строки DOS- в Windows-кодировку

Function DosToWin(s)

Dim i,k,ss

ss=""

for i=1 to Len(s) 'цикл по всем символам в строке

k=Asc(Mid(s,i,1)) 'определение ANSI-код i-го символа

' и изменяем код k на код соответствующего символа в Windows-кодировке

If (128<=k) and (k<=175)then k=k+32

If (224<=k) and (k<=239) then k=k+16

if k=240 then k=168

if k=241 then k=184

ss=ss+Chr(k)

Next

DosToWin=ss 'возращает преобразованную строку

End function

'********** Начало ***********************************

Dim s

'Печатает приглашение ввода

WScript.StdOut.Write "Введите одну строку:"

s=WScript.StdIn.ReadLine 'ввод строки с клавиатуры

WScript.StdOut.WriteBlanKLines 1 'Печать пустой строки

WScript.StdOut.Write "Было введено:"

'Преобразование введенной строки в Windows-кодировку

'и вывод ее на экран

WScript.StdOut.WriteLine DosToWin(s)

'********** Конец ************************************

Ввод строки в графическом режиме

Информацию можно вводить с помощью диалогового окна, создаваемого внутренней функцией InputBox.

dim s, s1

s1="Пример"

s=InputBox(s1,"Диалоговое окно")

'Выводим диалоговое окно с введенной строкой

MsgBox "Было введено:"&s

Получение свойств wsh из запущенного сценария

Можно определить некоторые параметры WSH и исполняемого сценария с помощью соответствующих методов объекта WScript, в частности:

Полный путь к приложению-серверу

Имя каталога, в котором находится приложение-сервер

Номер используемой версии WSH

Полный путь к исполняемому сценарию

Имя исполняемого сценария.

'проверка режима, в котором запущен сценарий

Function IsCScript()

IsCsript=("c"=Mid(LCase(WScript.FullName),Len(WScript.FullName)-10))

End Function

'возращает каталог, содержащий запущенный сценарий

Function GetScriptDir()

dim ScriptDir

ScriptDir=WScript.ScriptFullName

ScriptDir=Left(ScriptDir,InstrRev(ScriptDir,"\")-1)

GetScriptDir=ScriptDir

End Function

'********* Начало ***********************************

dim WshShell,s 'Объявляем переменные

'создаем объект WshShell

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

s="Свойства запущенного сценария:"& vbCrLf & vbCrLf

'Проверка, в каком режиме был запущен сценарий

if IsCScript() then

s=s & "Запущен в консольном режиме" & vbCrLf

else

s=s & "Запущен в графическом режим" & vbCrLf

end if

'определение остальных параметров

s=s & "Путь к серверу: " & WScript.FullName & vbCrLf

s=s & "Каталог сервера: " & WScript.path & vbCrLf

s=s & "Версия WSH: " & WScript.Version & vbCrLf

s=s & "Текущий каталог: " + WshShell.CurrentDirectory & vbCrLf

s=s & "Путь к сценарию: " & WScript.ScriptFullName & vbCrLf

s=s & "Каталог сценария: " & GetScriptDir() & vbCrLf

s=s & "Имя сценария: " & WScript.ScriptName & vbCrLf

WScript.Echo s 'вывод строки

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]