ОС лабораторная раб 2013
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственной бюджетное образовательное учреждение высшего профессионального образования.
«Чувашский государственный университет им. И.Н. Ульянова»
ОПЕРАЦИОННЫЕ СИСТЕМЫ, СРЕДЫ И ОБОЛОЧКИ
Методические указания к лабораторным работам
Чебоксары 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 |
Вывод на печать содержимого текстовых файлов |
|
|
|
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 |
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, ®, ®, &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 |