Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
02.01.2020
Размер:
29.92 Кб
Скачать

Министерство образования и науки РФ

Новосибирский государственный технический университет

Факультет бизнеса

Кафедра экономической информатики

Лабораторная работа №5 по операционным системам

Взаимодействие со стандартными приложениями Windows на VBScript/ JScript

Студент:

Группа: ФБИ-22

Преподаватель: Эстрайх И. В.

Дата: 19.04.2014

Новосибирск 2014

Цель работы: научиться взаимодействовать со стандартными приложениями Windows на языках VBScript и Jscript.

Ход работы:

  1. Написала скрипт script1.vbs (для Windows 7), который запускает калькулятор и блокнот, вычисляет пример «9*6=» с помощью калькулятора, результат помещает в блокнот.

Текст script1.vbs:

Dim vbShellC, vProc

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

vbShellC.Run "calc.exe", 1

WScript.Sleep 500

vbShellC.AppActivate("Калькулятор")

WScript.Sleep 500

vbShellC.SendKeys "9"

WScript.Sleep 500

vbShellC.SendKeys "*"

WScript.Sleep 500

vbShellC.SendKeys "6"

WScript.Sleep 500

vbShellC.SendKeys "="

WScript.Sleep 500

vbShellC.SendKeys "^C"

WScript.Sleep 500

Set vProc=vbShellC.Exec("notepad.exe")

vbShellC.AppActivate("Блокнот")

WScript.Sleep 500

vbShellC.SendKeys "^V"

WScript.Sleep 500

Результат: 54

  1. Написала скрипт script2.vbs (для Windows 7), который запускает калькулятор и блокнот, вычисляет пример «F7+7F=» с помощью калькулятора, результат помещает в блокнот в шестнадцатеричном виде, а потом строкой в десятичном. После вычислений калькулятор приобретает вид «Обычный».

Текст script2.vbs:

Dim vbShellC, vProc

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

vbShellC.Run "calc.exe", 1

WScript.Sleep 500

vbShellC.AppActivate("Калькулятор")

WScript.Sleep 500

vbShellC.SendKeys "%3"

WScript.Sleep 500

vbShellC.SendKeys "{F5}"

WScript.Sleep 500

vbShellC.SendKeys "F"

WScript.Sleep 500

vbShellC.SendKeys "7"

WScript.Sleep 500

vbShellC.SendKeys "{+}"

WScript.Sleep 500

vbShellC.SendKeys "7"

WScript.Sleep 500

vbShellC.SendKeys "F"

WScript.Sleep 500

vbShellC.SendKeys "="

WScript.Sleep 500

vbShellC.SendKeys "^C"

WScript.Sleep 500

Set vProc=vbShellC.Exec("notepad.exe")

vbShellC.AppActivate("Блокнот")

WScript.Sleep 500

vbShellC.SendKeys "Ш"

WScript.Sleep 500

vbShellC.SendKeys "е"

WScript.Sleep 500

vbShellC.SendKeys "с"

WScript.Sleep 500

vbShellC.SendKeys "т"

WScript.Sleep 500

vbShellC.SendKeys "н"

WScript.Sleep 500

vbShellC.SendKeys "а"

WScript.Sleep 500

vbShellC.SendKeys "д"

WScript.Sleep 500

vbShellC.SendKeys "ц"

WScript.Sleep 500

vbShellC.SendKeys "а"

WScript.Sleep 500

vbShellC.SendKeys "т"

WScript.Sleep 500

vbShellC.SendKeys "е"

WScript.Sleep 500

vbShellC.SendKeys "р"

WScript.Sleep 500

vbShellC.SendKeys "и"

WScript.Sleep 500

vbShellC.SendKeys "ч"

WScript.Sleep 500

vbShellC.SendKeys "н"

WScript.Sleep 500

vbShellC.SendKeys "ы"

WScript.Sleep 500

vbShellC.SendKeys "й"

WScript.Sleep 500

vbShellC.SendKeys " "

WScript.Sleep 500

vbShellC.SendKeys "р"

WScript.Sleep 500

vbShellC.SendKeys "е"

WScript.Sleep 500

vbShellC.SendKeys "з"

WScript.Sleep 500

vbShellC.SendKeys "у"

WScript.Sleep 500

vbShellC.SendKeys "л"

WScript.Sleep 500

vbShellC.SendKeys "ь"

WScript.Sleep 500

vbShellC.SendKeys "т"

WScript.Sleep 500

vbShellC.SendKeys "а"

WScript.Sleep 500

vbShellC.SendKeys "т"

WScript.Sleep 500

vbShellC.SendKeys ":"

WScript.Sleep 500

vbShellC.SendKeys " "

WScript.Sleep 500

vbShellC.SendKeys "^V"

WScript.Sleep 500

vbShellC.SendKeys "{Enter}"

WScript.Sleep 500

vbShellC.SendKeys "Д"

WScript.Sleep 500

vbShellC.SendKeys "е"

WScript.Sleep 500

vbShellC.SendKeys "с"

WScript.Sleep 500

vbShellC.SendKeys "я"

WScript.Sleep 500

vbShellC.SendKeys "т"

WScript.Sleep 500

vbShellC.SendKeys "и"

WScript.Sleep 500

vbShellC.SendKeys "ч"

WScript.Sleep 500

vbShellC.SendKeys "н"

WScript.Sleep 500

vbShellC.SendKeys "ы"

WScript.Sleep 500

vbShellC.SendKeys "й"

WScript.Sleep 500

vbShellC.SendKeys " "

WScript.Sleep 500

vbShellC.SendKeys "р"

WScript.Sleep 500

vbShellC.SendKeys "е"

WScript.Sleep 500

vbShellC.SendKeys "з"

WScript.Sleep 500

vbShellC.SendKeys "у"

WScript.Sleep 500

vbShellC.SendKeys "л"

WScript.Sleep 500

vbShellC.SendKeys "ь"

WScript.Sleep 500

vbShellC.SendKeys "т"

WScript.Sleep 500

vbShellC.SendKeys "а"

WScript.Sleep 500

vbShellC.SendKeys "т"

WScript.Sleep 500

vbShellC.SendKeys ":"

WScript.Sleep 500

vbShellC.SendKeys " "

WScript.Sleep 500

vbShellC.AppActivate("Калькулятор")

WScript.Sleep 500

vbShellC.SendKeys "{F6}"

WScript.Sleep 500

vbShellC.SendKeys "^C"

WScript.Sleep 500

vbShellC.AppActivate("Блокнот")

WScript.Sleep 500

vbShellC.SendKeys "^V"

WScript.Sleep 500

vbShellC.AppActivate("Калькулятор")

WScript.Sleep 500

vbShellC.SendKeys "%1"

WScript.Sleep 500

Результат:

Шестнадцатеричный результат: 176

Десятичный результат: 374

  1. Создала скрипт script3.js (для Windows 7), который выполняет вычисления посредством калькулятора, считывая построчно примеры из заранее подготовленного текстового файла text1.txt, результаты вычислений помещает в текстовый файл text2.txt в порядке обработки примеров. В файле с примерами префиксы перед значащими цифрами обозначают системы счисления: 0xЧИСЛО — шестнадцатеричная, 0ЧИСЛО — восьмеричная, @ЧИСЛО — двоичная, ЧИСЛО — десятичная. Арифметические операции включают + − * / , их приоритет может задаваться (). Результаты вычислений помещаются в заданной пользователем системе счисления (программа уточняет, в какой). Если число задано без арифметической операции, оно преобразуется в указанную пользователем систему счисления.

Текст script3.js:

var restype, jShell, FSO, RF, WF, IE, ss, char, flag, rpath, wpath;

jShell=WScript.CreateObject("WScript.Shell");

FSO=WScript.CreateObject("Scripting.FileSystemObject");

rpath="C:\\LR5\\text1.txt"; //путь к файлу с примерами

wpath="C:\\LR5\\text2.txt"; //путь к файлу для записи ответов

if (FSO.FileExists(rpath)) //если файл с примерами существует

{

RF=FSO.OpenTextFile(rpath, 1); //открываем файл с примерами для чтения

WF=FSO.OpenTextFile(wpath, 2, true); WScript.Sleep(500); //открываем файл для записи ответов

jShell.Run("calc.exe", 1); WScript.Sleep(500); //запуск калькулятора

jShell.AppActivate("Калькулятор"); WScript.Sleep(500);

jShell.SendKeys("%3"); WScript.Sleep(500); //вид «Программист»

IE = WScript.CreateObject("InternetExplorer.Application"); //запускаем Internet Explorer, будем использовать его буфер

IE.Navigate("about:blank"); WScript.Sleep(500); //отображение пустой страницы

while (!RF.AtEndOfStream) //пока не конец файла

{ ss=0; //код системы счисления для её выбора в калькуляторе

flag=0; //код, указывающий на установку нужной системы счисления

while (!RF.AtEndOfLine) //пока не конец строки

{char=RF.Read(1); //считываем за итерацию один символ

if (flag==0)

{if ((char=="0")&&(ss==0)) ss=1; //подозрение на 16 или 8 сист. счисл.

else

{if (char=="@") ss=2; //2 сис. счисл.

if (ss==1) {if (char=="x") ss=16; else ss=8;} //выяснили, 16 или 8 сист. счисл.

if((ss==0)&&((char=="1")||(char=="2")||(char=="3")||(char=="4")||

(char=="5")||(char=="6")||(char=="7")||(char=="8")||(char=="9"))) ss=10; //10 сист. счисл.

}

}

jShell.AppActivate("Калькулятор"); WScript.Sleep(500);

if (flag==0) //нужная сист. счисл. не включена

{ if (ss==2) {jShell.SendKeys("{F8}"); WScript.Sleep(500); flag=1;}

if (ss==8) {jShell.SendKeys("{F7}"); WScript.Sleep(500); flag=1;}

if (ss==10) {jShell.SendKeys("{F6}"); WScript.Sleep(500); flag=1;}

if (ss==16) {jShell.SendKeys("{F5}"); WScript.Sleep(500); flag=1;}

}

if (ss==8) {jShell.SendKeys(char); WScript.Sleep(500); ss=9;} //увеличение ss на 1 означает, что мы пропустили префиксы и далее пойдут цифры числа, которые надо вводить в калькулятор. В случае с 8 и 10 сист. счисл. мы их идентифицировали, получив значащую цифру числа, её уже надо ввести

else

{if (ss==10) {jShell.SendKeys(char); WScript.Sleep(500); ss=11;}

else

{if (ss==2) ss=3; //40

else

{if (ss==16) ss=17;

else

{if((char=="(")||(char==")")||(char=="*")||(char=="-") ||(char=="/")||(char=="+"))

{ss=0; flag=0; //число закончилось, получим новое число в новой системе счисления

if ((char=="(")||(char==")")||(char=="+")) char="{"+char+";

} //особый ввод ()+ в SendKeys

jShell.SendKeys(char); WScript.Sleep(500); //ввод символа в калькулятор

}

}

}

}

} //конец строки

jShell.SendKeys("="); WScript.Sleep(500);

restype=jShell.Popup("В какой системе счисления желаете сохранить результат? \r\n Да - двоичная \r\n Нет - "+

"восьмеричная \r\n Отмена - десятичная \r\n Ничего не выбрали - шестнадцатеричная",7,"Система счисления",3);

jShell.AppActivate("Калькулятор");

if (restype==-1) {jShell.SendKeys("{F5}"); WScript.Sleep(500);} // 16 сист. счисл.

else {if (restype==2) {jShell.SendKeys("{F6}"); WScript.Sleep(500);} // 10 сист. счисл.

else {if (restype==6) {jShell.SendKeys("{F8}"); WScript.Sleep(500);} // 2 сист. счисл.

else {if (restype==7) {jShell.SendKeys("{F7}"); WScript.Sleep(500);} //8 сист. счисл.

}

}

}

jShell.SendKeys("^C"); WScript.Sleep(500);

jShell.SendKeys("{ESCAPE}"); WScript.Sleep(500); //очищаем поле калькулятора

ss=IE.document.parentWindow.clipboardData.getData("Text"); //доступ Internet Explorer к буферу обмена

WScript.Sleep(500);

WF.WriteLine(ss); WScript.Sleep(500); //запись результата

if (!RF.AtEndOfStream) RF.ReadLine();

}//конец файла

jShell.Popup("Примеры решены",0,"Готово!",64);

jShell.SendKeys("%1"); WScript.Sleep(500); //калькулятор в вид «Обычный»

jShell.AppActivate("text2 - Блокнот"); WScript.Sleep(500); jShell.SendKeys("^S"); WScript.Sleep(500); //сохранение файла с результатами

IE.Quit(); WScript.Sleep(500); RF.Close(); WScript.Sleep(500); WF.Close(); WScript.Sleep(500); // закрытие Internet Explorer и файлов с примерами и результатами

}

else restype=jShell.Popup("Файл с примерами не найден",0,"Ошибка!",16); //если файла с примерами нет, сообщение об ошибке

Файл с примерами text1.txt:

0xA3+0123

@10111

105+((0xF53-@110)*5+025)

0xFAD/7

Результат text2.txt:

11110110 // (2 сист. счисл.)

17 // (16 сист. счисл.)

19711 // (10 сист. счисл.)

1075 // (8 сист. счисл.)

Вывод: научилась взаимодействовать со стандартными приложениями Windows на языках VBScript и Jscript.

Соседние файлы в папке Операционные системы