Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОС лабораторная раб 2013

.pdf
Скачиваний:
18
Добавлен:
22.05.2015
Размер:
549.47 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственной бюджетное образовательное учреждение высшего профессионального образования.

«Чувашский государственный университет им. И.Н. Ульянова»

ОПЕРАЦИОННЫЕ СИСТЕМЫ, СРЕДЫ И ОБОЛОЧКИ

Методические указания к лабораторным работам

Чебоксары 2012

УДК 004.451(075.8) ББК 3973.23-018.2я73

И 201

Составил:

Иванов В.В. к.э.н, ст. преп. кафедры «Информационных систем»

Рецензенты:

доктор экономических наук, профессор И.П. Данилов кандидат экономических наук., Т.А. Николаева

И 201 Операционные системы: Метод. указания к лабораторным работам / В.В. Иванов. Чебоксары: Изд-во Чуваш. Ун-та,

2012. 42 с.

ISBN 978-5-7677-1615-9

Составлены в соответствии с государственным образовательным стандартом высшего профессионального образования направления подготовки дипломированного специалиста.

Содержат варианты заданий для лабораторных работ. Рассматривается работа в Windows и Linux.

Методические указания к лабораторным работам предназначено для студентов 1-2 кура высших учебных заведений, обучающихся по специальностям 080500 «Бизнес-нформатика». Может быть полезна для студентов технических факультетов.

Ответственный редактор:

Утверждено Учебно-методическим советом университета

 

УДК 004.451(075.8)

 

ББК 3973.23-018.2я73

 

Издательство Чувашского

 

Университета,2012

ISBN 978-5-7677-1615-9

Иванов В.В.,2012

Лабораторная работа 1

Команды MS-DOS

Задание 1. Загрузить Windows. Запустить Пуск – Все программы – Стандартные – Командная строка.

Номера команд определяются как (номер варианта по списку – 1) *3+1, причем нужно использовать три команды подряд в приведенном ниже списке. Например, для 2-го варианта это Break, Cacls, Call. Ввести три команды для своего варианта с клавиатуры по очереди, нажимая после каждой Enter. В окне появляется последовательно результат их работы. Вывести справку по каждой команде варианта, набирая для этого HELP <имя команды> либо <имя команды> /?. Вывести справки по трем командам варианта в текстовый файл. Для этого использовать переназначение вывода с экрана в файл (знак “>”, а для существующего файла – два таких знака).

Пример: Assoc /? > 1.txt

Данная командная строка создает файл с именем 1.txt и записывает в него справку по команде Assoc. Если файл с таким именем существовал, его содержимое теряется.

Пример: Call /? >> 1.txt

Вышеуказанная командная строка дописывает в конец файла с именем 1.txt справку по команде Call.

Продемонстрировать полученный файл.

Ниже приводится список команд для выбора в соответствии с вариантом с пояснением.

ASSOC

Вывод либо изменение сопоставлений по расши-

 

рениям имен файлов

AT

Выполнение команд и запуск программ по распи-

 

санию

ATTRIB

Отображение и изменение атрибутов файлов

BREAK

Включение/выключение режима обработки ком-

 

бинации клавиш CTRL+C

CACLS

Отображение/редактирование списков управле-

 

ния доступом (ACL) к файлам

CALL

Вызов одного пакетного файла из другого

CD

Вывод имени либо смена текущей папки

CHCP

Вывод либо установка активной кодовой страни-

 

цы

CHDIR

Вывод имени либо смена текущей папки

CHKDSK

Проверка диска и вывод статистики

CHKNTFS

Отображение или изменение выполнения про-

 

верки диска во время загрузки

CLS

Очистка экрана

CMD

Запуск еще одного интерпретатора командных

 

строк Windows

COLOR

Установка цвета текста и фона, используемых по

 

умолчанию

COMP

Сравнение содержимого двух файлов или двух

 

наборов файлов

COMPACT

Отображение/изменение сжатия файлов в разде-

 

лах NTFS

CONVERT

Преобразование дисковых томов FAT в NTFS.

 

Нельзя выполнить преобразование текущего ак-

 

тивного диска

COPY

Копирование одного или нескольких файлов в

 

другое место

DATE

Вывод либо установка текущей даты

DEL

Удаление одного или нескольких файлов

DIR

Вывод списка файлов и подпапок из указанной

 

папки

DISKCOMP

Сравнение содержимого двух гибких дисков

DISKCOPY

Копирование содержимого одного гибкого диска

 

на другой

DOSKEY

Редактирование и повторный вызов командных

 

строк; создание макросов

ECHO

Вывод сообщений и переключение режима ото-

 

бражения команд на экране

ENDLOCAL

Конец локальных изменений среды для пакетного

 

файла

ERASE

Удаление одного или нескольких файлов

EXIT

Завершение работы программы CMD.EXE (ин-

 

терпретатора командных строк)

FC

Сравнение двух файлов или двух наборов файлов

3

4

 

и вывод различий между ними

FIND

Поиск текстовой строки в одном или нескольких

 

файлах

FINDSTR

Поиск строк в файлах

 

 

FOR

Запуск указанной команды для каждого из фай-

 

лов в наборе

FORMAT

Форматирование диска для работы с Windows

 

 

FTYPE

Вывод либо изменение типов файлов, используе-

 

мых при сопоставлении по расширениям имен

 

файлов

GOTO

Передача управления в отмеченную строку па-

 

кетного файла

GRAFTABL

Позволяет Windows отображать расширенный

 

набор символов в графическом режиме

HELP

Выводит справочную информацию о командах

 

Windows

IF

Оператор условного выполнения команд в пакет-

 

ном файле

LABEL

Создание, изменение и удаление меток тома для

 

дисков

MD

Создание папки

 

 

MKDIR

Создание папки

 

 

MODE

Конфигурирование системных устройств

 

 

MORE

Последовательный вывод данных по частям раз-

 

мером в один экран

MOVE

Перемещение одного или нескольких файлов из

 

одной папки в другую

PATH

Вывод либо установка пути поиска исполняемых

 

файлов

PAUSE

Приостановка выполнения пакетного файла и

 

вывод сообщения

POPD

Восстановление предыдущего значения текущей

 

активной папки, сохраненного с помощью ко-

 

манды PUSHD

PRINT

Вывод на печать содержимого текстовых файлов

 

 

PROMPT

Изменение приглашения в командной строке

 

Windows

PUSHD

Сохранение значения текущей активной папки и

 

переход к другой папке

RD

Удаление папки

RECOVER

Восстановление читаемой информации с плохого

 

или поврежденного диска

REM

Помещение комментариев в пакетные файлы и

 

файл CONFIG.SYS

REN

Переименование файлов и папок

RENAME

Переименование файлов и папок

REPLACE

Замещение файлов

RMDIR

Удаление папки

SET

Вывод, установка и удаление переменных среды

 

Windows

SETLOCAL

Начало локальных изменений среды для пакетно-

 

го файла

SHIFT

Изменение содержимого (сдвиг) подставляемых

 

параметров для пакетного файла

SORT

Сортировка ввода

START

Запуск программы или команды в отдельном ок-

 

не

SUBST

Сопоставляет заданному пути имя диска

TIME

Вывод и установка системного времени

TITLE

Назначение заголовка окна для текущего сеанса

 

интерпретатора командных строк CMD.EXE

TREE

Графическое отображение структуры папок за-

 

данного диска или заданной папки

TYPE

Вывод на экран содержимого текстовых файлов

VER

Вывод сведений о версии Windows

VERIFY

Установка режима проверки правильности запи-

 

си файлов на диск

VOL

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

XCOPY

Копирование файлов и дерева папок

Задание 2. Создать текстовый файл, имеющий расширение «bat», в котором, в зависимости от варианта, выполнить следующие действия. Используя команды MS-DOS, создать папку,

5

6

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

Лабораторная работа 2

Зарегистрированные расширения файлов

исистемный реестр

ВWindows имеются следующие зарегистрированные расширения файлов:

386

arj

avi

bmp

cab

db

doc

dot

drv

fon

gif

hlp

htm

html

ico

inf

ini

jpg

pcx

pdf

rar

rtf

sys

tga

tif

ttf

txt

vxd

wmf

zip

и другие. Номер варианта соответствует номеру по списку, т.е. если студент 5-й в списке, ему нужен файл с расширением cab.

В Windows имеется также системный реестр, просмотр и редактирование которого возможно при выполнении команды regedit из пункта «Выполнить» меню Windows. В нем находятся ключи в виде дерева. У каждого ключа возможно существование имени, типа и значения. По пути HKEY_CLASSES_ROOT располагаются ключи для расширений.

Задание. Загрузить Windows. Найти в компьютере файлы с расширением, соответствующим своему варианту (используется «Поиск файлов» в меню «Пуск», а для создания файла результата - Total Commander.) Если его нет, уточнить у преподавателя. Выяснить, какое приложение запускает этот тип файлов, не используя для этого стандартные средства Windows, а используя системный реестр. Результаты представить в виде двух файлов (в виде текста и графики). Графически – снятием копий экрана, текст – экспортом из реестра и из Total Commander сохранить содержимое панели после поиска.

Лабораторная работа 3

Системные функции Visual Basic

(Для заочников это контрольная работа)

В программе Microsoft Word имеется возможность визуального программирования на языке Visual Basic. В этом языке имеются следующие системные функции, а конкретно свойства

(Property):

System.Application

System.ComputerType

System.Connect

System.CountryRegion

System.Creator

System.Cursor

System.FreeDiskSpace

System.HorizontalResolution

System.LanguageDesignation

System.MacintoshName

System.MathCoprocessorInstalled

System.MSInfo

System.OperatingSystem

System.Parent

System.PrivateProfileString

System.ProcessorType

System.ProfileString

System.QuickDrawInstalled

System.Version

System.VerticalResolution

Номер функции для выполнения лабораторной работы соответствует номеру студента в списке, а в случае длинного списка нумерация увеличивается с 1-го номера. Например, для 23-го студента это 3-я функция.

Задание. Запустить Windows. Запустить Microsoft Word. В

меню выбрать «Сервис», затем «Макрос», «Редактор Visual Basic». Создать форму (для чего имеется соответствующая кнопка). На форму нанести кнопку (Button) и текстовое окно. Назначить форме процедуру, для чего дважды на ней щелкнуть. Между строками

7

8

Private Sub CommandButton1_Click() и End Sub

вписать действие, соответствующее выводу в текстовое окно своей функции по номеру варианта, т.е. если оно имеет имя «textbox1», то «textbox1.Text:=» и наименование свойства. Продемонстрировать работу и пояснить, что это за свойство.

Написать программу для вычисления функции, соответствующей своему варианту (см. список ниже), причем x и y вводятся в текстовые поля. Использовать для вывода форму, созданную с помощью VBA (Visual Basic for Application).

Организовать также вывод в приложение Word или Excel. Для этого в программу добавить Selection.TypeText Text:=TextBox3.Text или АсtivеDocument.Соntent.InsеrtAfter.

Ниже приводится список функций для вычисления (в случае отсутствия номера для варианта использовать вариант с начала + 14):

1. cos(x+y)+0,3(x+2y) (1/3).

2. sin(2x+y)+0,1(x*x+2y) (1/5).

3. cosx+2y+0,13(x+y*y)

(1/3).

4. sin(x/y)+0,3(x+0.2y)

(2/3).

5. cosx+siny+0,2(x/2y) (1/3).

6. cosx/siny+0,3(x*y+2y) (1/5).

7. cosxsiny+0,3x+(2y+2)

(1/3).

8. cos(xy)/2+3(x-2y) (1/3).

9. 2cos(x*x)+0,3(x*2y-2)

(1/3).

10. 3cos(x-y)+1,3(4x+y) (1/3).

11. 5cosx+y+0,3(x*y+2y)

(5/3).

12. sin(x/y)+0,1(x+5y)

(2/3).

13. sin(xy)+0,1(2x-y) (1/3).

14. cosx+6y-0,1(20y*y)

(1/3).

Лабораторная работа 4

Команды операционной системы Linux. Написание и компиляция программ. Система Midnight Commander

В операционной системе Linux так же, как и в MS-DOS, имеются команды командной строки. Целью данной лабораторной работы является их изучение.

К ним относятся следующие (выводятся по команде help):

№1

№2

№3

№4

№5

№6

%

.

:

alias

bg

bind

break

builtin

case

cd

com-

compgen

 

 

 

 

mand

 

complete

continue

declare

dirs

disown

echo

enable

eval

exec

exit

export

false

fc

fg

for

getopts

hash

help

history

if

kill

let

local

logout

popd

printf

pushd

pwd

read

readonly

return

select

set

shift

shopt

source

suspend

test

time

times

trap

true

type

typeset

ulimit

umask

unalias

unset

until

variables

wait

while

 

 

Номера команд определяются как (номер варианта по списку – 1) *2+1, причем нужно использовать две команды подряд в приведенном ниже списке.

Задание 1. Загрузить Linux (в данном случае Alt Linux выглядит как Windows). Для получения командной строки в меню «Терминалы» выбрать CONSOLE (Терминал). Для получения справки по команде ввести HELP <имя команды>. Копировать полученные справки по двум командам своего варианта в текстовый файл. Для этого использовать копирование текстового экрана в буфер обмена (предварительно выделив копируемую часть). Затем можно вставить дискету в дисковод, нажать на соответствующий экранный ярлык, в меню создать текстовый файл, вставить из буфера и сохранить. Продемонстрировать полученный файл.

Существуют разнообразные пакеты, облегчающие задачу пользователя в UNIX. К таким пакетам следует отнести Midnight Commander – аналог программ Norton Commander для DOS и FAR для Windows 9x и NT – со своим встроенным редактором, запускаемый командой mc, и экранный редактор joe.

Задание 2. Войдите в mc и попробуйте перемещаться по директориям, создавать и редактировать файлы. Напишите простую программу на языке С++. Сохраните с расширением «С». Компилируйте и исправьте ошибки. Для компилирования используется, например,

Cpp pn.c где pn.c – имя файла с программой. По вариантам:

1.Выполните поиск файлов (из KDE или MC).

2.Откройте в браузере HTML-страницу.

9

10

3.Создайте документ с текстом в OpenOffice.

4.Создайте таблицу с формулой в OpenOffice.

Лабораторная работа № 5 Исследование логической структуры диска в MS-DOS

http://bezmaternyh.temator.ru/cont/934/1.html Опубликовал на Temator.Ru: Безматерных Л. Дата публикации: 30.06.2004.

Программы, составленные на языке С, обращаются к прерываниям MS-DOS с помощью таких функций как intdos, int86, intdosx и т.д.

Для передачи параметров используются структуры REGS, WORDREGS, BYTEREGS,SREGS, описанные в файле dos. h. Программа записывает параметры в поля структуры, соответствующие регистрам процессора, а затем вызывает одну из перечисленных выше функций, передавая ей адрес структуры. После выполнения прерывания результат записывается в эту же или другую структуру. Например:union REGS inregs, outregs; struct

SREGS segregs;......

inregs.

h. ah. =0x3a; segregs. ds =

FP_SEG(dir_name)

; inregs.

x. dx = FP_OFF(dir_name)

;intdosx(&inregs, &outregs, &segregs) ;.....

В этом фрагменте кода вызывается функция 3Ah прерывания INT 21h, для чего используется функция intdosx, которая входит в стандартную библиотеку системы разработки С++. Номер функции записывается в поле h. ah объединения inregs, параметры функции (передаваемые через регистры DS: DX)соответственно поле ds структуры segregs и в поле x. dx объединения inregs. Функция intdosx записывает содержимое регистров процессора поле выполнения программного прерывания в объединение outregs.

Объединение REGS определено в файле dos. h следующим образом: UNION REGS{ struct WORDREGS x; struct BYTEREGS h; }; В нем имеется две структуры -WORDREGS и BYTEREGS.

Первая из этих структур предназначена для работы с16зфззядными регистрами. Она определена так: struct WORDREGS { unsigned int ax, bx, cx, dx, si. di, cflag, flags; }; В этой структуре поля ax, bx, cx, dx, si, di соответствуют одноименным регистрам центрального процессора. Значение флага переноса записывает-

ся в переменную cflag, поле flags предназначено для остальных флагов процессора.

С помощью структуры BYTEREGS можно задавать и определять содержимое8-разрядных регистров процессора: struct BYTEREGS { unsigned char al, ah,bl, bh, cl, ch, dl, dh; }; Для работы с сегментными регистрами предназначена структура SREGS, определенная следующим образом: struct SREGS{ unsigned int es; unsigned int cs; unsigned int ss, unsigned int ds; };Для использования перечисленных выше структур программа должна одержать следующую строку: #include <dos. h> Поле вызова программного прерывания программа должна проверить флаг переноса, который сохраняется в поле cflag. Проверка поля cflag может быть выполнена, например, следующим образом: union REGS inregs, outregs;.....

intdos(&inregs, &outregs) ; if(outregs. x. cflags! = 0) error();......

Код ошибки при этом записывается в переменную outregs. x. ax. Цель работы. Изучение логической структуры диска ОС

MS-DOS Общие положения.

Диски ОС MS-DOS организованы по довольно жесткой схеме. Каждый диск включает в себя помимо области файлов еще несколько управляющих областей фиксированного размера. Первый сектор логического диска (сектор 1, дорожка0, головка 0) содержит загрузочную запись - программу начальной загрузки ОС Кроме программы начальной загрузки в загрузочной записи находятся параметры, описывающие характеристики данного логического диска. Эти параметры располагаются в самом начале сектора. Формат загрузочной записи

Смещение байт

Размер байт

Содержание

0

3

Команда JMP xxxxx - ближний переход на про-

 

 

грамму начальной загрузки

3

8

Название фирмы-изготовителя ОС и версия.

11

25

Расширенный блок параметров BIOS

36

1

Физический номер устройства (0 - НГМД, 80h -

 

 

НМД)

37

1

Зарезервировано

38

1

Символ “(“- признак расширенной загрузочной

 

 

записи

39

4

Серийный номер диска, создается во время

 

 

форматирования

43

11

Метка диска

11

12

54

 

8

 

Содержит запись ‘FAT12 ‘ или ‘FAT16 ‘, кото-

 

 

 

 

рая идентифицирует форматтаблицы размеще-

 

 

 

 

ния файлов (FAT)

Со смещением 11 располагается расширенный блок пара-

метров BIOS. Этот блок содержит некоторые характеристики

логического диска.

 

 

 

Смещение байт

 

Размер байт

Имя поля

Описание

0

 

2

set_siz

Количество байт в одном секторе

 

 

 

 

 

диска

2

 

1

clustsiz

Количество секторов в одном кла-

 

 

 

 

 

стере

3

 

2

res_sect

Количество зарезервированных

 

 

 

 

 

секторов

5

 

1

fat_cnt

Количество FAT

6

 

2

root_siz

Максимальное количество деск-

 

 

 

 

 

рипторов файлов в корневом ката-

 

 

 

 

 

логе диска

8

 

2

tot_sect

Общее количество секторов на

 

 

 

 

 

носителе данных

10

 

1

media

Байт-описатель среды носителя

 

 

 

 

 

данных

11

 

2

fat_size

Количество секторов, занимаемых

 

 

 

 

 

одной копией FAT

13

 

2

sectors

Количество секторов на дорожке

15

 

2

heads

Количество магнитных головок

17

 

2

hidden_1

Количество скрытых секторов, для

 

 

 

 

 

носителя размером < 32 Мб

19

 

2

hidden_2

Количество скрытых секторов, для

 

 

 

 

 

носителя размером > 32 Мб

21

 

4

tot_sect

Общее количество секторов на

 

 

 

 

 

логическом диске, превышающим

 

 

 

 

 

по размеру 32 Мб

Байт описания среды - media может служит для идентификации носителя данных, например, он содержит значение F8h для жесткого диска любой емкости или значение F0h для диска размером 3,5 дюйма и емкостью 1440 Кб.

Прерывания для работы с логическим диском Для работы с логическим диском(или дискетой) на уровне логических номеров секторов MS-DOS программам два прерывания - INT 25h (чтение сектора по его логическому номеру) и INT 26h(запись сектора по его логическому номеру) . Для вызова этих прерываний используется следующий формат: INT 25h - чтение сектора по его логическому адресу На входе: AL - Адрес НГМД или НМД (0-A:, 1-B:, и т.д. CX -количество секторов, которые нужно

прочитать DX - логический номер начального сектора DS: BX - адрес буфера для чтения На выходе: AH – код ошибки при неуспешном завершении операции CF 1, если произошла ошибка; 0,если ошибки нет.

INT 26h - запись сектора по его логическому номеру На входе: AL – Адрес НГМД или НМД (0- A:, 1-B:, и т.д.

CX - количество секторов, которые нужно записать DX - логический номер начального сектора DS: BX - адрес буфера, содержащего данные На выходе: AHкод ошибки при неуспешном завершении операции CF 1, если произошла ошибка; 0, если ошибки нет. В программах на языке С для работы с указанными прерываниями может быть использован следующий фрагмент программы:...

union REGS reg; struct SREGS segreg; reg. x. ax. = drive; reg. x. bx =FP_OFF (buff) ; segreg. ds = FP_SEG (buff) ; reg. x. x. = 1; reg. x. dx. =0; int86x(0x25, &reg, &reg, &segreg) ;... где buff –

адрес буфера, в который считывается (записывается) логический сектор. Замечание: после вызова прерывания должна обязательно следовать команда: asm POP AX Порядок выполнения лабораторной работы

Задание. Изучить логическую структуру дика MS-DOS. Составить программу, читающую загрузочный сектор диска

и выводящую на экран основные характеристики диска из BPB. Содержание отчета

Цель работы. Описание логической структуры диска MSDOS. Характеристики логического диска, полученные в результате работы составленной в ходе выполнения лабораторной работы программы.

Контрольные вопросы Принципы записи информации на дисковые накопители.

Методы разделения дискового пространства между пользователями (“справочник файлов” ) . Методы распределения дискового пространства для файлов. Логическая структура дискаMS-DOS. Литература

Г. Дейтел. Введение в операционные системы. Том 1,2. М: Мир, 1987. А.В. Фролов, Г. В. Фролов MS-DOS для программиста. Библиотека системного программиста, Том 19, М: ДИАЛОГ-МИФИ, 1995.

13

14

Лабораторная работа 6

Управление памятью (буфер обмена) и прерывание по таймеру

Пример многоагентной системы. Задание. Создать две программы. Варианты:

Первая по истечении некоторого времени автоматически выполняет операцию (по варианту) с числовым вектором, вторая аналогично выполняет обратную операцию с тем же вектором в тех же пределах случайной величины. Программы передают друг другу вектор как строку через буфер обмена. Числовой вектор выводится в строке состояния (StatusBar) или в текстовом поле. Размерность вектора – 10.

Варианты:

1)Увеличение на случайную величину (в пределах от 0 до 4), обратная операция - уменьшение.

2)Умножение на случайную величину (в пределах от 0 до 4), обратная операция - деление.

3)Циклический сдвиг вектора влево, обратная операция –

вправо.

4)Перестановка местами двух компонентов вектора со случайными номерами (без обратной операции).

Пример программы на Delphi, обращающейся к буферу обмена.

unit buffer; interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, OleServer, CmAdmCtl, StdCtrls, ComCtrls,

Clipbrd;

type

TForm1 = class(TForm) Button1: TButton; RichEdit1: TRichEdit; Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); begin

Richedit1.Text:=Clipboard.AsText;

end;

procedure TForm1.Button2Click(Sender: TObject); var v:string;

begin v:=Richedit1.Text; Clipboard.AsText:=v; end;

end.

Для преобразования строк в числа используются функ-

ции Strtoint и Inttostr.

Все компоненты, которые мы использовали ранее в своих программах, были визуальные. Что это значит? А то, что любой компонент, который мы помещали на форму, был виден и выполнял какую-либо видимую роль.

Однако, есть еще и компоненты, которые выполняют свою работу не будучи видными для постороннего глаза. Одним из таких компонентов является Таймер. В его задачу входит обрабатывать какое-либо сообщение через определенные интервалы времени.

15

16

Хотя этот компонент и невидим в процессе работы программы, у него тоже есть свои события и свойства. Вернее, событие одно- OnTimer, которое определяет, что должна делать программа, когда истечет заданный интервал.

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

Перейдем к практике.

1.Откройте Delphi или создайте новый проект.

2.Поместите на форму компонент Таймер. Он находится на панели компонентов System (Системные). Таймер можно расположить где угодно на форме. Этот объект отображается на форме в виде значка фиксированного размера. В окне работающей программы его не видно.

3.На форму поместите кнопку - компонент Button.

4.Давайте сделаем так, чтобы через каждые пол-секунды изменялся буфер обмена. Свойство Interval сделайте равным 500. (Для второй программы 600).

5.Дважды щелкните по значку Timer, чтобы открыть обработчик события. Начинаем писать код:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

randomize; // включаем генератор случайных чисел v:=strtoint(Richedit1.Text);

Richedit1.Text:= inttostr(v+random(5)); Clipboard.AsText:= Richedit1.Text;

end;

Лабораторная работа № 7 Скрипты Windows

C помощью командного интерпретатора cmd.exe трудно написать какую-либо сложную программу-сценарий (script): отсутствует полноценная интерактивность, нельзя напрямую работать с рабочим столом Windows и системным реестром и т. д.

Для исправления этой ситуации компанией Microsoft был разработан сервер сценариев Windows Script Host (WSH), с помощью которого можно выполнять сценарии, написанные, в принципе, на любом языке (при условии, что для этого языка установлен соответствующий модуль (scripting engine), поддерживающий технологию ActiveX Scripting). В качестве стандартных языков поддерживаются Visual Basic Script Edition (VBScript) и JScript.

Создание и запуск простейших сценариев WSH Простейший WSH-сценарий, написанный на языке JScript

или VBScript — это обычный текстовый файл с расширением js или vbs соответственно, создать его можно в любом текстовом редакторе, способном сохранять документы в формате "Только текст".

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

В качестве первого примера создадим JScript-сценарий, выводящий на экран диалоговое окно с надписью "Привет!". Для этого достаточно c помощью, например, стандартного Блокнота Windows (notepad.exe) создать файл First.js, содержащий всего одну строку:

WScript.Echo("Привет!");

Тот же самый сценарий на языке VBScript, естественно, отличается синтаксисом и выглядит следующим образом:

WScript.Echo "Привет!"

Для запуска сценариев WSH существует несколько спосо-

бов.

Запуск сценария из командной строки в консольном режиме

Можно выполнить сценарий из командной строки с помощью консольной версии WSH cscript.exe. Например, чтобы запустить сценарий, записанный в файле C:\Script\First.js, нужно загрузить командное окно и выполнить в нем команду

cscript C:\Script\First.js

Запуск сценария с помощью Проводника Windows (Windows Explorer)

17

18

Самым простым является запуск сценария в окнах Проводника Windows или на рабочем столе - достаточно просто выполнить двойной щелчок мышью на имени файла со сценарием или на его значке (аналогично любому другому исполняемому файлу). При этом, как и в случае запуска с помощью меню Пуск (Start), сценарий по умолчанию выполняется с помощью wscript.exe.

Установка и изменение свойств сценариев В случае необходимости для сценариев можно задавать раз-

личные параметры, влияющие на ход их выполнения. Для консольной (cscript.exe) и графической (wscript.exe) версий сервера сценариев эти параметры задаются по-разному.

Если сценарий запускается в консольном режиме, то его исполнение контролируется с помощью параметров командной строки для cscript.exe (см. табл. 4.1), которые включают или отключают различные опции WSH (все эти параметры начинаются с символов "//").

Например, команда

cscript //Nologo C:\Script\First.jsзапустит сценарий First.js без информации о версии WSH.

Сценарий можно запускать с параметрами командной строки, которые указываются после имени этого сценария (процедура обработки таких параметров будет описана ниже, при рас-

смотрении объектов WshArguments, WshNamed и WshUnnamed).

Например, команда

cscript //B C:\Script\First.js /a /bзапустит сценарий First.js в

пакетном режиме, при этом /a и /b будут являться параметрами этого сценария, а //B - параметром приложения cscript.exe.

Если сценарий запускается в графическом режиме (с помощью wscript.exe), то свойства сценария можно устанавливать с помощью вкладки Сценарий (Script) диалогового окна, задающего свойства файла в Windows.

После задания свойств сценария автоматически создается файл с именем этого сценария и расширением wsh, который имеет структуру наподобие ini-файла, например:

[ScriptFile]

Path=C:\Script\First.js

[Options]

Timeout=0

DisplayLogo=1Если дважды щелкнуть в Проводнике Windows по wsh-файлу или запустить такой файл из командной строки, то соответствующий сервер сценариев (wscript.exe или cscript.exe) запустит сценарий, которому соответствует wshфайл, с заданными в секции Options параметрами.

При запуске сценариев с помощью wscript.exe для задания параметров командной строки сценария можно использовать технологию drag-and-drop - если выделить в Проводнике Windows несколько файлов и перетащить их на ярлык сценария, то этот сценарий запустится, а имена выделенных файлов передадутся ему в качестве параметров.

Параметры Arg1, Arg2, : метода Echo задают аргументы для вывода. Если сценарий был запущен с помощью wscript.exe, то метод Echo направляет вывод в диалоговое окно, если же для выполнения сценария применяется cscript.exe, то вывод будет направлен на экран (консоль). Каждый из аргументов при выводе будет разделен пробелом. В случае использования cscript.exe вывод всех аргументов будет завершен символом новой строки. Если в методе Echo не задан ни один аргумент, то будет напечатана пустая строка.

Например, после выполнения сценария EchoExample.vbs (листинг 5.3) с помощью cscript.exe на экран будут выведены пустая строка, три числа и строка текста.

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

'* Имя: EchoExample.vbs '* Язык: VBScript

'* Описание: Использование метода WScript.Echo '*************************************************** WScript.Echo 'Выводим пустую строку

WScript.Echo 1,2,3 'Выводим числа

WScript.Echo "Привет!" 'Выводим строку

'************* Конец Листинг 5.3. Использование метода

WScript.Echo (html, txt)

Метод Sleep

В следующем примере сценарий переводится в неактивное состояние на 5 секунд:

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

19

20